OpenCV開發筆記(一):OpenCV介紹、編譯

若該文爲原創文章,未經允許不得轉載
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客導航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/100072151
各位讀者,知識無窮而人力有窮,要麼改需求,要麼找專業人士,要麼自己研究

紅胖子(紅模仿)的博文大全:開發技術集合(包含Qt實用技術、樹莓派、三維、OpenCV、OpenGL、ffmpeg、OSG、單片機、軟硬結合等等)持續更新中...(點擊傳送門)

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開發環境

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介紹

       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版本。

        官網:https://opencv.org/

        當前最新版本爲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版本的,地址:

http://101.110.118.68/jaist.dl.sourceforge.net/project/opencvlibrary/opencv-win/2.4.10/opencv-2.4.10.exe

步驟二:解壓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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章