因?yàn)閂S太大,而且在公司使用需要license。所以選擇了Dev-cpp,雖然作為IDE來說簡單上手快,但是對opencv的支持很少,遇到各種安裝配置問題都沒有人分享,嘗試了兩天終于放棄。最后選擇了Codeblocks,相比于VS小巧,相比于vscode有集成IDE,相比于Dev-cpp,其opencv支持資源更多一些。下面從小白的角度總結(jié)一下安裝配置過程(完全不懂編譯等概念,所以表述不專業(yè))。
一. Opencv編譯,順序不要反了
如果安裝了anaconda,opencv編譯時(shí)有些資源會(huì)自動(dòng)搜索anaconda環(huán)境,所以我沒有把a(bǔ)naconda加入環(huán)境變量中;安裝codeblocks,并將bin添加到環(huán)境變量中;安裝Cmake,并將bin添加到環(huán)境變量中;下載opencv.exe,解壓后將opencv/build/x64/bin添加到環(huán)境變量中;打開Cmake,選擇opencv/source并自創(chuàng)一個(gè)opencv編譯文件夾,如opencv/opencv/build/x64/MinGW;configure時(shí)選擇codeblocks compiler,選擇codeblock/MinGW/bin下的gcc.exe和g++.exe,點(diǎn)擊確定;如果Cmake主界面出現(xiàn)紅色提示,按照網(wǎng)上搜到的Opencv Cmake配置方法,勾選相應(yīng)需要編譯的庫和參數(shù)(注意如果只是opencv起步學(xué)習(xí),hdf不需要裝,之前因?yàn)閔df配置折騰了很久,很影響學(xué)習(xí)進(jìn)度)。其中,需要將opencv_contrib路徑下的modules路徑添加到;OPENCV_EXTRA_MODULES_PATH這一項(xiàng)中,opencv_contrib文件可以在github上下載相應(yīng)版本,也可參照本文最后提供的幾個(gè)鏈接中的提供的信息下載;進(jìn)入此文件夾,使用命令mingw32-make -j5編譯文件后,若提示dll缺失,打開cmakecachelog.txt中所有download行,前一個(gè)字符串是目標(biāo)文件,后一個(gè)字符串是下載鏈接,手動(dòng)下載dll文件后替換目標(biāo)文件,再次在Cmake界面點(diǎn)擊configure直至Cmake主界面無紅色錯(cuò)誤后,點(diǎn)擊generate后,再執(zhí)行mingw32-make -j5命令;【高能預(yù)警,此步驟各種bug,從20%->50%->70%->99%,其中最折騰的就是我在Cmake勾選了hdf,導(dǎo)致hdf5相關(guān)的編譯不停出現(xiàn)問題補(bǔ)補(bǔ)修修兩三天,還是沒弄好。建議如果是初學(xué)opencv,可以先在網(wǎng)上搜一下有些參數(shù)和庫是不是必要的,非必要可以日后熟悉后再添加,以免影響學(xué)習(xí)進(jìn)度和熱情。我還去掉了導(dǎo)致99%報(bào)錯(cuò)的一個(gè)選項(xiàng),忘記叫什么了,最后也不影響使用。如果你是跟我一樣連編譯和鏈接都還不懂得小白,建議不要糾結(jié)于100%完美,先用起來再慢慢優(yōu)化】使用命令mingw32-make install,成功后可以在opencv/build/x64/MinGW(之前創(chuàng)建的編譯文件夾)中找到install文件夾;接著就是如下跟codeblocks的對接了,如果以上都沒太多問題了,下面基本就沒什么問題了;
二. codeblocks配置opencv方法參考
這篇寫的挺好的,詳細(xì)且正確https://blog.csdn.net/lwplwf/article/details/77369930重點(diǎn)是將編譯好的install文件夾下的include文件夾、x64/mingw/bin、x64/mingw/lib三個(gè)文件夾拷貝到CodeBlocks新建的opencv文件夾里輔助參考一下這篇
https://www.cnblogs.com/yongjiuzhizhen/p/4930284.html測試一下結(jié)果,無法上傳圖片,最后能顯示lena那張經(jīng)典照片
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>using namespace cv;int main(int argc, char *argv[])
{Mat img = imread("D:\\lena.jpg", 0);if(img.empty())return -1;imshow("tst", img);waitKey(0);return 0;
}
三. 問題
cmake的作用下載opencv exe還是opencv source?mingw32-make -j后面的數(shù)字怎么選擇
看過最多的是j1,但是我j1出錯(cuò)了,改成j5就好了,后面看到有人說還有用j4,j7的,具體可以參考一下下載的opencv_contrib的README.md中推薦用j幾,數(shù)字代表編譯時(shí)線程數(shù)量
四. 配置參考鏈接
https://www.itread01.com/content/1550641530.html
https://docs.opencv.org/master/d5/de5/tutorial_py_setup_in_windows.html
https://packages.msys2.org/package/mingw-w64-i686-opencv?repo=mingw32
https://repo.msys2.org/mingw/x86_64/
not-https://repo.msys2.org/mingw/i686/
https://support.hdfgroup.org/ftp/HDF5/releases/
總結(jié)
以上是生活随笔為你收集整理的Opencv+Windows+Codeblocks+C++安装笔记,花了三天终于在公司各种限制条件下成功打开图片的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。