学习记录
OpenCV学习
背景
- 树莓派3B
- OpenCV-3.4.1
代码
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
#include "opencv2/core.hpp"
#include "opencv2/highgui.hpp"
using namespace cv;
//const int CV_GUI_NORMAL = 0x10;
int main(int argc, const char** argv)
{
Mat lena = imread("../a.jpg");
Mat gray = imread("../a.jpg", 0);
int lRow = lena.cols;
int lCol = lena.rows;
imwrite("../b.jpg", gray);
namedWindow("dog", CV_GUI_NORMAL);
namedWindow("gd", CV_GUI_EXPANDED);
moveWindow("dog", 10, 10);
imshow("dog", lena);
imshow("gd", gray);
cout<<lRow<<","<<lCol<<endl;
resizeWindow("gd", 255, 255);
waitKey(0);
// destroyWindow("dog");
// while(1);
destroyAllWindows();
cout<<"program end>>>---------------------"<<endl;
return 0;
}
现象
程序能够正常运行,但程序运行结束后会打印Segmentation fault (core dumped)
原因
产生原因为destroyAllWindows();
这个函数本身的目的是为了关闭imshow()
函数打开的图像窗口。
解决方案
将destroyAllWindows();
改为cv::destroyAllWindows();
。
补充
解决方案好像有问题,有时还会出现报错。但既然程序能正常运行,问题后续再议。有知道的道友麻烦告知一下