一、概述
目的:
做一些轻量级的测试的时候就不用打开开发环境了。opencv和MinGW的安装步骤不做介绍,主要记录一下手动编译的过程当做备忘录。
二、实际代码及测试效果
1.简单代码如下,对一张图片做腐蚀操作,展示原图和腐蚀后的图片
#include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/imgcodecs/imgcodecs.hpp> #include <iostream> using namespace std; using namespace cv;//opencv命名空间 int main(){ Mat srcImage = imread("girl.jpg"); imshow("org",srcImage); //进行腐蚀操作 Mat element= getStructuringElement(MORPH_RECT,Size(15,15)); Mat dstImage; erode(srcImage,dstImage,element); //显示图片 imshow("dst",dstImage); waitKey(0); return 0; }
2.展示图片:左边为原图,右边为腐蚀过的图片
3.具体的编译命令如下:
g++ -g -o test opencv_test.cpp -I/opencv include文件夹绝对路径/include -L/opencv bin目录绝对路径/bin -llibopencv_core452 -llibopencv_highgui452 -llibopencv_imgproc452 -llibopencv_imgcodecs452
ps:
1.g++ -g -o 编译命令 test代表编译后的exe文件的名称 opencv_test.cpp代表被编译的源文件 如果有多个就用空格隔开
2.-I/opencv include文件夹绝对路径/include opencv头文件路径,比如我的电脑的为:-I/d/电脑名/tony/tool/opencv4.5.2/mbuild/install/include
3.-L/opencv bin目录绝对路径/bin -llibopencv_core452 -llibopencv_highgui452 -llibopencv_imgproc452 -llibopencv_imgcodecs452 要链接的库,如我的电脑的为:
-L/d/电脑名/tony/tool/opencv4.5.2/mbuild/install/x64/mingw/bin -llibopencv_core452 -llibopencv_highgui452 -llibopencv_imgproc452 -llibopencv_imgcodecs452
4.编译好之后就是一个test.exe文件
5../test.exe直接运行exe文件即可
此处由于我没有配置opencv的环境变量,所以比较啰嗦,配置完之后其实还是挺简洁的。
三、测试过程中遇到的bug
1.遇到的bug
undefined reference to `std::allocator<char>::~allocator()'
引起此bug的原因是因为iostream的头文件没有引入进来导致到。引入头文件即可。