若该文为原创文章,未经允许不得转载
原博主博客地址:https://blog.csdn.net/qq21497936
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/102725669
目录
OpenCV开发专栏
《OpenCV开发笔记(〇):使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境》
《OpenCV开发笔记(三):OpenCV图像的概念和基本操作》
《OpenCV开发笔记(四):OpenCV图片和视频数据的读取与存储》
《OpenCV开发笔记(五):OpenCV读取与操作摄像头》
《OpenCV开发笔记(六):OpenCV基础数据结构、颜色转换函数和颜色空间》
《OpenCV开发笔记(八):OpenCV常用操作之计时、缩放、旋转、镜像》
《OpenCV开发笔记(九):OpenCV区域图像(ROI)和整体、局部图像混合》
《OpenCV开发笔记(十):OpenCV图像颜色通道分离和图像颜色多通道混合》
《OpenCV开发笔记(十一):OpenCV编译支持Gpu(cuda) 加速开发之win-qt-mingw32编译》
《OpenCV开发笔记(十二):OpenCV编译支持Gpu(cuda) 加速开发之win-qt-msvc2015编译(opencv3.4.0、cuda9.0、VS2015)》
持续补充中…
OpenCV开发笔记(十一):OpenCV编译支持Gpu(cuda) 加速开发之win-qt-mingw32编译
前言
在开发过程中,正常OpenCV是不会使用GPU来获取视频流的,根据格式opencv获取到mat也占用部分cpu。本篇章将会讲解,添加OpenCV对gpu的支持。
背景
摄像头的码流参数
读取流媒体视频流(默认使用)
cv::VideoCapture capture;
if(!capture.open("rtsp://admin:[email protected]:554/h265/ch1/main/av_stream"))
{
qDebug() << __FILE__ << __LINE__ << "Failed to open camera: 0";
}else{
qDebug() << __FILE__ << __LINE__ << "Succeed to open camera: 0";
}
namedWindow("111", CV_WINDOW_NORMAL);
cvResizeWindow("111", 400, 300);
while(true)
{
cv::Mat mat;
LOG_DEBUG("start read mat");
capture >> mat;
LOG_DEBUG("finished read mat");
LOG_DEBUG("start show");
cv::imshow("111", mat);
LOG_DEBUG("finished show");
LOG_DEBUG("start decode");
CaptureManager::cvMat2QImage(mat);
LOG_DEBUG("finished decode");
int keyValue = cv::waitKey(10);
}
从上图可知,opencv读取没到来图像是处于读取状态,所以先忽略start、finished的问题,然后cv::mat显示花费2ms,使用软解码花费7ms。
然后查看cpu使用率,如下图:
再查看gpu使用率:
然后关掉代码,查看,如下图:
此处opencv并未使用GPU获取流媒体,我们去掉显示代码部分,虽然看似影响了GPU的使用率但是在使用进程中并没有代码的进程,如下图:
然后加入gpu的代码,测试是否使用了gpu,代码如下:
编译错误,如下图:
判断opencv相关gpu结论
以上得出结论,开发机打开流媒体时,占用了GPU缓存的使用,但是是没有使用GPU进行编解码的(在Processes中没有该进程),软解码时间需要7ms,软解码(mat转rgb888)改为硬解码的必要性也不大。
确认开发机上opencv的版本号
pkg-config –modversion opencv
Cuda下载和安装
本机的显卡,如下图:
查看改显卡是否支持cuda,查看网址:
https://developer.nvidia.com/cuda-gpus
确认支持
官网下载地址:
若下载慢,安装个迅雷下吧。
下载完后安装
出现安装失败
修改一下安装选项,之前是“精简”安装,现在使用“自定义”安装,重新安装如下图:
安装成功,如下图:
OpenCV下载
下载的是OpenCV3.4.0版本(配合开发机,之前的文章是3.4.1)。
当前最新版本为3.4.1。
下载地址:https://opencv.org/releases/page/3/
OpenCV contrib库介绍与下载
Opencv contrib是一些扩展工具库,提供了一些算法和一些工具,如图像模糊算法、2D图像进行三维重建、目标跟踪等等。
(注意:opencv_contrib一定要和opencv的版本对应)
下载地址:https://github.com/opencv/opencv_contrib/releases
选择与opencv对应的版本,这里我们选择opencv3.4.0(与开发机对应)。
OpenCV编译支持Gpu
不带gpu的可以查看《OpenCV开发笔记(一):OpenCV介绍、编译》,可两章对比结合,本次编译描述过程较前面稍微简单点。
步骤一:解压到编译文件夹
步骤二:CMake配置
将python更新到最新版本3.8.0,并修改路径
继续编译
加上python3.8之后,确实能检测到cuda,但是只支持visual studio平台。
OpenCV编译Cuda小结
在windows上的Qt mingw32程序无法使用cuda加速。
(接下来,将转为windows下的msvc2015 32位进行cuda开发)。
若该文为原创文章,未经允许不得转载
原博主博客地址:https://blog.csdn.net/qq21497936
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/102725669