若該文爲原創文章,未經容許不得轉載
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客導航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/100072151
各位讀者,知識無窮而人力有窮,要麼改需求,要麼找專業人士,要麼本身研究html
紅胖子(紅模仿)的博文大全:開發技術集合(包含Qt實用技術、樹莓派、三維、OpenCV、OpenGL、ffmpeg、OSG、單片機、軟硬結合等等)持續更新中...(點擊傳送門)c++
OpenCV開發專欄(點擊傳送門)
上一篇:《OpenCV開發筆記(〇):使用mingw530_32編譯openCV3.4.1源碼,搭建Qt5.9.3的openCV開發環境》算法
下一篇:《OpenCV開發筆記(二):cvui交互界面》數據庫
前言
圖像視頻開發使用到OpenCV,選擇版本爲OpenCV3.4.1,整理了去年的筆記。機器學習
OpenCV編譯相關博客
《OpenCV開發筆記(〇):使用mingw530_32編譯openCV3.4.1源碼,搭建Qt5.9.3的openCV開發環境》ide
《OpenCV開發筆記(一):OpenCV介紹、編譯》模塊化
《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(全網最淺顯易懂)》測試
《OpenCV開發筆記(七十):紅胖子帶你傻瓜式編譯VS2017x64版本的openCV4》
OpenCV介紹
OpenCV(開源計算機視覺庫)是一個開源的計算機視覺和機器學習軟件庫。OpenCV旨在爲計算機視覺應用提供通用基礎設施,並加速商業產品中機器感知的使用。做爲BSD許可產品,OpenCV使企業能夠輕鬆利用和修改代碼。
該庫擁有超過2500種優化算法,其中包括一套全面的經典和最早進的計算機視覺和機器學習算法。這些算法可用於檢測和識別面部,識別物體,對視頻中的人體動做進行分類,跟蹤相機移動,跟蹤移動物體,提取物體的3D模型,從立體相機生成3D點雲,將圖像拼接在一塊兒以產生高分辨率整個場景的圖像,從圖像數據庫中找到類似的圖像,從使用閃光燈拍攝的圖像中移除紅眼,跟蹤眼睛運動,識別風景並創建標記以用加強現實覆蓋它等.OpenCV擁有超過47,000名用戶社區和估計下載量超過 1800萬。該圖書館普遍用於公司,研究團體和政府機構。
除了谷歌,雅虎,微軟,英特爾,IBM,索尼,本田,豐田等知名公司,還有許多創業公司,如Applied Minds,VideoSurf和Zeitera,它們普遍使用OpenCV。OpenCV的部署用途涵蓋了將街景圖像拼接在一塊兒,檢測以色列監控視頻中的入侵,監控中國的礦山設備,幫助機器人在Willow Garage中導航和拾取物體,檢測歐洲游泳池溺水事故,運行互動藝術西班牙和紐約在土耳其檢查跑道上的殘骸,檢查世界各地工廠的產品標籤,以便在日本進行快速麪部檢測。
它具備C ++,Python,Java和MATLAB接口,並支持Windows,Linux, Android 和Mac OS。OpenCV主要傾向於實時視覺應用,並在可用時利用MMX和SSE指令。 目前正在積極開發功能齊全的 CUDA和 OpenCL接口。有超過500種算法和大約10倍的組成或支持這些算法的函數。OpenCV自己是用C ++編寫的,它有一個模板化的接口,能夠與STL容器無縫協做。
OpenCV下載
下載的是OpenCV3.4.1版本。
當前最新版本爲3.4.1。(2018年年初的)
下載地址:https://www.opencv.org/releases.html
下載地址
Github還真難下,各類網關設置就是慢,因此,提供下載地址以下:
https://download.csdn.net/download/qq21497936/12253553
OpenCV編譯(2019年8月25日補充)
步驟一:解壓到編譯文件夾
步驟二:CMake配置
有點小漫長,主要下載了ffmpeg的2個dll花了部分時間。
(注意:編譯要編譯Release版本,查看「入坑一」)
步驟三:配置withQt
配置一下,會在出現幾個變量,更改以下圖:
步驟四:命令行編譯
步驟五:編譯錯誤「identifier 'nullptr' is a keyword in C++11」
出現c++11的支持,須要支持c++11,以下圖:
配置CMake,繼續編譯。
步驟六:出現錯誤「sprint_instead_use_StringCbPrintxxxxxx
找到源碼modules\videoio\src\cap_dshow.cpp,搜索#include 「DShow.h」,添加宏定義:
繼續編譯。
步驟七:編譯成功
模塊化
模板測試
代碼
#include <QApplication> #include "opencv/highgui.h" #include "opencv/cxcore.h" #include "opencv2/core/core.hpp" #include "opencv2/highgui/highgui.hpp" using namespace cv; int main(int argc, char *argv[]) { QApplication a(argc, argv); namedWindow("window"); waitKey(0); return a.exec(); }
測試結果
入坑
入坑一:工程打開窗口運行當機
解決方法:
從新編譯,默認編譯的是debug版本,因此要切換到release版本,使用CMake從新配置,以下圖:
工程模板:對應版本號v1.0.0
對應版本號v1.0.0
編譯OpenCV2(附加)
步驟一:下載openCV
地址:https://sourceforge.net/projects/opencvlibrary/
因下載太慢,換了一個2.4.10版本的,地址:
步驟二:解壓opencv到D:/opencv-2.4.10,頭文件的文件夾:
D:\opencv-2.4.10\opencv\build\include\opencv D:\opencv-2.4.10\opencv\build\include\opencv2
庫文件夾下的庫,分爲發佈版本和調試版本(帶d)
LIBS += -LD:\opencv-2.4.10\opencv\build\x86\vc10\lib \ -lopencv_calib3d2410 \ -lopencv_contrib2410 \ -lopencv_core2410 \ -lopencv_features2d2410 \ -lopencv_flann2410 \ -lopencv_gpu2410 \ -lopencv_highgui2410 \ -lopencv_imgproc2410 \ -lopencv_legacy2410 \ -lopencv_ml2410 \ -lopencv_nonfree2410 \ -lopencv_objdetect2410 \ -lopencv_ocl2410 \ -lopencv_photo2410 \ -lopencv_stitching2410 \ -lopencv_superres2410 \ -lopencv_ts2410 \ -lopencv_video2410 \ -lopencv_videostab2410
各類嘗試找不到opencv2的函數,因此選擇從新編譯(建議讀者重編)。
步驟三:從新編譯opencv2
直接使用QCcreator進行cmake,這是對於qt更便捷的方法(與配置opencv3不同的地方,筆者強烈使用opencv3的配置方法較爲通用,編譯其餘版本或者與編譯與qt徹底無關的版本都適用)
步驟一:下載cmake,安裝cmake,特別注意要加入環境變量
步驟二:打開qtcreator,打開工程,直接來打開CMakeLists文件
步驟三:打開後會會進行解析配置,解析配置完成,成爲了Qt工程
步驟四:做爲qt工程直接編譯
步驟五:編譯後的源代碼和文件夾中的include裏面的頭文件大部分都不見了,可是opencv下還有一個build,從裏面獲取頭文件
步驟六:從編譯後source-build/bin中獲取.dll
Qt使用Opencv
顯示圖片運行結果
截圖直接截的qt幫助文件
上一篇:《OpenCV開發筆記(〇):使用mingw530_32編譯openCV3.4.1源碼,搭建Qt5.9.3的openCV開發環境》
下一篇:《OpenCV開發筆記(二):cvui交互界面》
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客導航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/100072151
本文同步分享在 博客「紅胖子(AAA紅模仿)」(CSDN)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。