临时更换成了TDM-GCC,和mingw类似,这里只是声明一下。
由于opencv下载下来的.exe安装包实际上是没有mingw(gcc)匹配的/动静态库,因此这些东西需要我们自己使用mingw编译。
首先是cmake配置,直接在source目录命令行下执行 cmake . 即可(注意后边有空格和代表当前目录的点号)
一般来说应该可以了,然后就是使用mingw32-make命令完成编译(过程较长),最后是使用mingw32-make install 生成需要的文件(头文件/动/静态库)
C:. ├─include │ ├─opencv │ └─opencv2 │ ├─calib3d │ ├─contrib │ ├─core │ ├─features2d │ ├─flann │ ├─gpu │ │ └─device │ │ └─detail │ ├─highgui │ ├─imgproc │ ├─legacy │ ├─ml │ ├─nonfree │ ├─objdetect │ ├─ocl │ ├─photo │ ├─stitching │ │ └─detail │ ├─superres │ ├─ts │ ├─video │ └─videostab └─x86 └─mingw ├─bin └─lib
将bin加入系统path变量中。
然后是clion的cmakelist.txt编写如下,这是使用的最简单的一些库,稍后也可以自己加入。
cmake_minimum_required(VERSION 3.2) project(opencv) set(CMAKE_CXX_FLAGS "-std=c++11") include_directories(C:\\\\opencv\\\\include) set(SOURCE_FILES main.cpp) set(TARGET_LIBS "C:\\\\opencv\\\\x86\\\\mingw\\\\lib\\\\libopencv_core249.dll.a" "C:\\\\opencv\\\\x86\\\\mingw\\\\lib\\\\libopencv_highgui249.dll.a" "C:\\\\opencv\\\\x86\\\\mingw\\\\lib\\\\libopencv_imgproc249.dll.a" ) add_executable(opencv ${SOURCE_FILES}) target_link_libraries(opencv ${TARGET_LIBS})
然后是编写测试代码,
1 #include "iostream" 2 #include<opencv2/opencv.hpp> 3 using namespace std; 4 using namespace cv; 5 6 int main(int argc,char *argv[]) { 7 if(argc!=2){ 8 cout<<"with args in two"<<endl; 9 return -2; 10 } 11 Mat img = imread(argv[1]); 12 if (img.empty()) { 13 cout << "Error" << endl; 14 return -1; 15 } 16 imshow("Lena", img); 17 waitKey(); 18 19 return 0; 20 }
运行参数设置为lena.png
运行一次先产生debug目录,然后将lena.png转移到那个目录去就可以正确看到了:
时间: 2024-10-24 15:14:39