若该文为原创文章,未经容许不得转载
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客导航:http://www.javashuo.com/article/p-wxwjppoc-mo.html
本文章博客地址:http://www.javashuo.com/article/p-tffoidxv-nu.html
各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么本身研究c++
红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中...(点击传送门)面试
上一篇:《OpenCV开发笔记(三十三):红胖子8分钟带你深刻了解漫水填充算法(图文并茂+浅显易懂+程序源码)》算法
下一篇:《OpenCV开发笔记(三十五):红胖子8分钟带你深刻了解ximgproc扩展模块中的自适应流行滤波器(图文并茂+浅显易懂+程序源码)》网络
红胖子来也!!!app
opencv_contrib是opencv提供额外的工具,提供一些基础算法,以前编译了不带opencv_contrib的版本,不带opencv_contrib的cuda硬加速版本,缺一个opencv+contrib的版本。ide
《OpenCV开发笔记(〇):使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境》模块化
《OpenCV开发笔记(十一):OpenCV编译支持Gpu(cuda) 加速开发之win-qt-mingw32编译》测试
《OpenCV开发笔记(十二):OpenCV编译支持Gpu(cuda) 加速开发之win-qt-msvc2015编译(opencv3.4.0、cuda9.0、VS2015)》ui
《OpenCV开发笔记(三十四):红胖子带你傻瓜式编译Qt+openCV3.4.1+opencv_contrib(全网最浅显易懂)》
《OpenCV开发笔记(七十):红胖子带你傻瓜式编译VS2017x64版本的openCV4》
《OpenCV开发笔记(〇):使用mingw530_32编译openCV3.4.1源码,搭建Qt5.9.3的openCV开发环境》
《OpenCV开发笔记(十二):OpenCV编译支持Gpu(cuda) 加速开发之win-qt-msvc2015编译(opencv3.4.0、cuda9.0、VS2015)》
https://download.csdn.net/download/qq21497936/12255080
Github还真难下,各类网关设置仍是是慢,因此,提供下载地址以下:
https://download.csdn.net/download/qq21497936/12253553
(注意:可能会卡住,由于网络很差,默认勾选一些库,如ffmpeg,cmake本身会下载)
只设置2个路径,configure一次,上面是路径,下面试配置的时候选择mingw make相关,并指定编译器,而后configure以下图:
添加opencv_contrib,以下图:
此处勾opencv_world,这样工程就只须要包含一个库文件(特别注意:添加opencv_contrib不要勾选,会出现连接错误,请查看入坑一),以下图,就主动不勾选了,默认为不勾选:
配置With_Qt,With_OPENGL,以下图:
配置一下,会在出现几个变量,更改以下图:
须要支持c++11,以下图:
找到源码modules\videoio\src\cap_dshow.cpp,搜索#include “DShow.h”,添加宏定义:
漫长的等待。
缺乏以下文件,请本身下载,提供csdn地址:
https://download.csdn.net/download/qq21497936/12253633
注意:你能够本身装个openssl软件,而后就能够了下载到了,提供OpenSSL的下载地址:
https://download.csdn.net/download/qq21497936/12254468
成功下载:
放入对应目录。
(未勾选world,库都是分开的)
(勾选world,加入opencv_contrib失败)
(未勾选world,库都是分开的)
请参照博文《OpenCV开发笔记(一):OpenCV介绍、编译》就行模块化封装与测试,该博文中也有一些入坑,本博客本质与其差很少,只是添加了opencv_contrib的支持。
往下图片这是world版本的模块化处理,可是添加了opencv _contrib没法编译成world模块,因此一下这个只是对于《OpenCV开发笔记(一):OpenCV介绍、编译》使用world编译项的补充。
那么仍是按照以前的:
笔者直接替换以前的库,再讲opencv_contrib相关的库加入工程文件,造成工程模板v1.29.0。
新的测试程序,测试是否加入opencv_contrib。
# 带opencv_contrib的非world版本 LIBS += \ -lopencv_calib3d341 \ -lopencv_ccalib341 \ -lopencv_core341 \ -lopencv_cvv341 \ -lopencv_datasets341 \ -lopencv_dnn_objdetect341 \ -lopencv_dnn341 \ -lopencv_dpm341 \ -lopencv_face341 \ -lopencv_features2d341 \ -lopencv_flann341 \ -lopencv_fuzzy341 \ -lopencv_hfs341 \ -lopencv_highgui341 \ -lopencv_img_hash341 \ -lopencv_imgcodecs341 \ -lopencv_imgproc341 \ -lopencv_line_descriptor341 \ -lopencv_ml341 \ -lopencv_objdetect341 \ -lopencv_optflow341 \ -lopencv_phase_unwrapping341 \ -lopencv_photo341 \ -lopencv_plot341 \ -lopencv_reg341 \ -lopencv_rgbd341 \ -lopencv_saliency341 \ -lopencv_shape341 \ -lopencv_stereo341 \ -lopencv_stitching341 \ -lopencv_structured_light341 \ -lopencv_superres341 \ -lopencv_surface_matching341 \ -lopencv_text341 \ -lopencv_tracking341 \ -lopencv_video341 \ -lopencv_videoio341 \ -lopencv_videostab341 \ -lopencv_xfeatures2d341 \ -lopencv_ximgproc341 \ -lopencv_xobjdetect341 \ -lopencv_xphoto341 \ -lopencv_ffmpeg341 \ -lopencv_aruco341 \ -lopencv_bgsegm341 \ -lopencv_bioinspired341
使用了opencv_contrib中的三种白平衡验证。
void OpenCVManager::testContrib() { QString fileName1 = "D:/qtProject/openCVDemo/openCVDemo/modules/openCVManager/images/1.jpg"; cv::Mat srcMat = cv::imread(fileName1.toStdString()); int width = 300; int height = 200; cv::resize(srcMat, srcMat, cv::Size(width, height)); cv::String windowName = _windowTitle.toStdString(); cvui::init(windowName); cv::Mat windowMat = cv::Mat(cv::Size(srcMat.cols * 3, srcMat.rows * 2), srcMat.type()); cv::Ptr<cv::xphoto::SimpleWB> pSimpleWB = cv::xphoto::createSimpleWB(); cv::Ptr<cv::xphoto::GrayworldWB> pGrayworldWB = cv::xphoto::createGrayworldWB(); cv::Ptr<cv::xphoto::LearningBasedWB> pLearningBasedWB = cv::xphoto::createLearningBasedWB(); while(true) { windowMat = cv::Scalar(0, 0, 0); // 原图先copy到左边 cv::Mat leftMat = windowMat(cv::Range(0, srcMat.rows), cv::Range(0, srcMat.cols)); cv::addWeighted(leftMat, 0.0f, srcMat, 1.0f, 0.0f, leftMat); cv::Mat dstMat; // 白平衡 pSimpleWB->balanceWhite(srcMat, dstMat); // 白平衡的图copy到左下 cv::Mat leftBottomMat = windowMat(cv::Range(srcMat.rows, srcMat.rows * 2), cv::Range(0, srcMat.cols)); cv::addWeighted(leftBottomMat, 0.0f, dstMat, 1.0f, 0.0f, leftBottomMat); // 白平衡 pGrayworldWB->balanceWhite(srcMat, dstMat); // 白平衡的图copy到左下 cv::Mat rightBottomMat = windowMat(cv::Range(srcMat.rows, srcMat.rows * 2), cv::Range(srcMat.cols, srcMat.cols * 2)); cv::addWeighted(rightBottomMat, 0.0f, dstMat, 1.0f, 0.0f, rightBottomMat); // 白平衡 pLearningBasedWB->balanceWhite(srcMat, dstMat); // 白平衡的图copy到左下 cv::Mat rightBottomMat2 = windowMat(cv::Range(srcMat.rows, srcMat.rows * 2), cv::Range(srcMat.cols * 2, srcMat.cols * 3)); cv::addWeighted(rightBottomMat2, 0.0f, dstMat, 1.0f, 0.0f, rightBottomMat2); // 更新 cvui::update(); // 显示 cv::imshow(windowName, windowMat); // esc键退出 if(cv::waitKey(25) == 27) { break; } } }
对应版本号v1.29.0
缘由:
编译成一个world的dll,CMake中未包含opencv_contrib部分的兼容。
解决方法:
不勾选,只能分多个dll。
上一篇:《OpenCV开发笔记(三十三):红胖子8分钟带你深刻了解漫水填充算法(图文并茂+浅显易懂+程序源码)》
下一篇:《OpenCV开发笔记(三十五):红胖子8分钟带你深刻了解ximgproc扩展模块中的自适应流行滤波器(图文并茂+浅显易懂+程序源码)》
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客导航:http://www.javashuo.com/article/p-wxwjppoc-mo.html
本文章博客地址:http://www.javashuo.com/article/p-tffoidxv-nu.html