由于两天一直在配置opencv的环境,也没有更加深入的学习opencv,就先把7.19的任务写一下,然后谈一下在配置opencv环境的时候遇到的几个坑和解决方法。
一、思考题
1.1 一言概之就是opencv和halcon是函数库,向其他语言如C++和python提供接口,而MATLAB是集成的开发环境,有自己的IDE、语法并且提供了丰富多样的库。而opencv是开源免费,halcon是非开源付费的。
1.2个人感觉waitKey()的用处就是展示窗口,但是它不像python里面的sleep之类的,无论把值设成多少都不会退出展示窗口,destroyWindow()就是为了解决显示之后无法退出的问题,如果只是imshow()然后destroyWindow()就可以在指定时间后关闭窗口。
1.3一言蔽之,JPG会在上传下载的过程中逐渐失真,而png不会。
二、练习题
2.1
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat mat1;
Mat mat2;
mat1 = imread("C:\\Users\\d\\Desktop\\1.jpg",1);
mat2 = imread("C:\\Users\\d\\Desktop\\2.jpg",1);
imshow("test1", mat1);
imshow("test2", mat2);
waitKey(0);
return 0;
}
1.jpg
2.jpg
其中1.jpg是645*1135,2.jpg是1920*1200,在弹出的窗口中可以发现2远比1大。
2.2按理来说我的实现方式没有太大的问题,但是我不知道什么原因我测不出fps
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat frame;
VideoCapture capture(0);
capture >> frame;
int h = frame.rows;
int w = frame.cols;
cout << capture.get(cv::CAP_PROP_FPS) << endl;
cout << h << " " << w << endl;
return 0;
}
2.3 太难了,明天再搞