若该文为原创文章,未经容许不得转载
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客导航:http://www.javashuo.com/article/p-wxwjppoc-mo.html
本文章博客地址:http://www.javashuo.com/article/p-oonufjnu-nu.html
各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么本身研究python
红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中...(点击传送门)git
上一篇:《OpenCV开发笔记(十):OpenCV图像颜色通道分离和图像颜色多通道混合》github
下一篇:《OpenCV开发笔记(十二):OpenCV编译支持Gpu(cuda) 加速开发之win-qt-msvc2015编译(opencv3.4.0、cuda9.0、VS2015)》算法
在开发过程当中,正常OpenCV是不会使用GPU来获取视频流的,根据格式opencv获取到mat也占用部分cpu。本篇章将会讲解,添加OpenCV对gpu的支持。windows
《OpenCV开发笔记(〇):使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境》缓存
《OpenCV开发笔记(一):OpenCV介绍、编译》ide
《OpenCV开发笔记(十一):OpenCV编译支持Gpu(cuda) 加速开发之win-qt-mingw32编译》工具
《OpenCV开发笔记(十二):OpenCV编译支持Gpu(cuda) 加速开发之win-qt-msvc2015编译(opencv3.4.0、cuda9.0、VS2015)》测试
《OpenCV开发笔记(三十四):红胖子带你傻瓜式编译Qt+openCV3.4.1+opencv_contrib(全网最浅显易懂)》spa
《OpenCV开发笔记(七十):红胖子带你傻瓜式编译VS2017x64版本的openCV4》
cv::VideoCapture capture; if(!capture.open("rtsp://admin:Admin123@192.168.0.65: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,代码以下:
编译错误,以下图:
以上得出结论,开发机打开流媒体时,占用了GPU缓存的使用,可是是没有使用GPU进行编解码的(在Processes中没有该进程),软解码时间须要7ms,软解码(mat转rgb888)改成硬解码的必要性也不大。
pkg-config –modversion opencv
本机的显卡,以下图:
查看改显卡是否支持cuda,查看网址:
https://developer.nvidia.com/cuda-gpus
确认支持
官网下载地址:
若下载慢,安装个迅雷下吧。
下载完后安装
出现安装失败
修改一下安装选项,以前是“精简”安装,如今使用“自定义”安装,从新安装以下图:
安装成功,以下图:
下载的是OpenCV3.4.0版本(配合开发机,以前的文章是3.4.1)。
当前最新版本为3.4.1。
下载地址:https://opencv.org/releases/page/3/
Opencv contrib是一些扩展工具库,提供了一些算法和一些工具,如图像模糊算法、2D图像进行三维重建、目标跟踪等等。
(注意:opencv_contrib必定要和opencv的版本对应)
下载地址:https://github.com/opencv/opencv_contrib/releases
选择与opencv对应的版本,这里咱们选择opencv3.4.0(与开发机对应)。
不带gpu的能够查看《OpenCV开发笔记(一):OpenCV介绍、编译》,可两章对比结合,本次编译描述过程较前面稍微简单点。
将python更新到最新版本3.8.0,并修改路径
继续编译
加上python3.8以后,确实能检测到cuda,可是只支持visual studio平台。
在windows上的Qt mingw32程序没法使用cuda加速。
(接下来,将转为windows下的msvc2015 32位进行cuda开发)。
上一篇:《OpenCV开发笔记(十):OpenCV图像颜色通道分离和图像颜色多通道混合》
下一篇:《OpenCV开发笔记(十二):OpenCV编译支持Gpu(cuda) 加速开发之win-qt-msvc2015编译(opencv3.4.0、cuda9.0、VS2015)》
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客导航:http://www.javashuo.com/article/p-wxwjppoc-mo.html
本文章博客地址:http://www.javashuo.com/article/p-oonufjnu-nu.html