VS2017 + cmake 3.7 + opencv 3.2 编译
由于各種原因使用了VS2010不支持的功能,需要在VS2017上使用opencv,且opencv release 沒有 vc15(VS2017需要的),所以需要編譯opencv 固有此文
本文參考:
http://blog.csdn.net/maize1111/article/details/68923677
http://blog.csdn.net/jarvischu/article/details/8468894
電腦配置: Win10 ?64bit
1. 在opencv官網(wǎng)上下載 open3.2 的source文件, copy到D盤 解壓縮?D:\opencv-3.2.0,在?D:\opencv-3.2.0 文件夾新建 build/vc15
2. 打開Cmake (電腦上沒安裝的去官網(wǎng)下載安裝)
在source code 和 build 分別browse到路徑,其中source code是含有Cmakelist文本文件的那個文件夾,build是我們剛剛建好的空文件夾
輸好路徑之后,點configure,選Visual Studio 15,確認,等待幾分鐘,如果沒有錯誤則點generate,再沒有錯誤就 open project。
我一開始用Visual Studio 15 + opencv2.4做的時候最后報錯版本不匹配,后來換成3.2版本就沒有問題了
3. openproject 打開VS2017后,在左欄項目文件下面 ?選擇CMakeTargets下面的INSTALL,右鍵點擊,選擇build生成(分別在Debug和Release下面生成兩次),生成之后就意味著你的OpenCV已經(jīng)編譯成功了
首先,在系統(tǒng)變量PATH中添加你編譯的OpenCV路徑,D:\opencv-3.2.0\opencv-3.2.0\build\vc15\install\x86\vc14\lib 加入PATH變量中。
然后把D:\opencv-3.2.0\opencv-3.2.0\build\vc15\install\x86\vc14\bin下的所有DLL文件Copy到C:\Windows\SysWOW64以及C:\Windows\System32下面。
4. 之后開始配置 VS 項目屬性
點project - 選最后一個 '屬性',分別在debug 和 release 選項下配置,debug和release 的配置過程基本相同,唯一的不同點是添加附加依賴項的時候文件名相差一個字母
4.1 配置包含文件
D:\opencv-3.2.0\opencv-3.2.0\build\vc15\install\include
D:\opencv-3.2.0\opencv-3.2.0\build\vc15\install\include\opencv
D:\opencv-3.2.0\opencv-3.2.0\build\vc15\install\include\opencv2
4.2 配置庫文件
D:\opencv-3.2.0\opencv-3.2.0\build\vc15\install\x86\vc14\lib
4.3 配置附加依賴項
4.3.1 Debug下面
復制 下面的內容, 此處應注意,確認如下文件名是否可以在 D:\opencv-3.2.0\opencv-3.2.0\build\vc15\install\x86\vc14\lib ?文件夾下被找到,因為opencv版本不同,文件名也不一樣,填寫內容應與lib文件夾下文件名匹配
opencv_ml320d.lib
opencv_calib3d320d.lib
opencv_core320d.lib
opencv_features2d320d.lib
opencv_flann320d.lib
opencv_highgui320d.lib
opencv_imgcodecs320d.lib
opencv_imgproc320d.lib
opencv_objdetect320d.lib
opencv_video320d.lib
opencv_photo320d.lib
opencv_shape320d.lib
opencv_stitching320d.lib
opencv_superres320d.lib
opencv_videostab320d.lib
opencv_videoio320d.lib
4.3.2 Release下面
同理 復制
opencv_ml320.lib
opencv_calib3d320.lib
opencv_core320.lib
opencv_features2d320.lib
opencv_flann320.lib
opencv_highgui320.lib
opencv_imgcodecs320.lib
opencv_imgproc320.lib
opencv_objdetect320.lib
opencv_video320.lib
opencv_photo320.lib
opencv_shape320.lib
opencv_stitching320.lib
opencv_superres320.lib
opencv_videostab320.lib
opencv_videoio320.lib
確認 所有對話框
5. 測試
#include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include <iostream> using namespace cv; using namespace std; static void help() { cout << "\nThis program demonstrates circle finding with the Hough transform.\n" "Usage:\n" "./houghcircles <image_name>, Default is pic1.png\n" << endl; } int main(int argc, char** argv) { const char* filename = argc >= 2 ? argv[1] : "board.jpg"; Mat img = imread(filename, 0); if(img.empty()) { help(); cout << "can not open " << filename << endl; return -1; } Mat cimg; medianBlur(img, img, 5); cvtColor(img, cimg, COLOR_GRAY2BGR); vector<Vec3f> circles; HoughCircles(img, circles, CV_HOUGH_GRADIENT, 1, 10, 100, 30, 1, 30 // change the last two parameters // (min_radius & max_radius) to detect larger circles ); for( size_t i = 0; i < circles.size(); i++ ) { Vec3i c = circles[i]; circle( cimg, Point(c[0], c[1]), c[2], Scalar(0,0,255), 3, CV_AA); circle( cimg, Point(c[0], c[1]), 2, Scalar(0,255,0), 3, CV_AA); } imshow("detected circles", cimg); waitKey(); return 0; }
的圖片,否則運行結果顯示找不到圖片
成功!
總結
以上是生活随笔為你收集整理的VS2017 + cmake 3.7 + opencv 3.2 编译的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3.4.4 配置opencv
- 下一篇: c#下实现GUI编程_程序员会懂的冷笑话