opencv学习笔记(第一课):图像,视频显示

知识点:mat类型赋值运算,只是引用,需要使用src.clone()才能进行复制。

显示图像

读取文件:cv::imread()
复制图像:Mat::clone()
创建窗口:cv::nameWindow()
显示图像:cv::imhsow()

#include
#include

using namespace cv;
using namespace std;

int main()
{
	Mat src,_src;
	const char src_dir[] = "E:\\Project\\C\\myProject\\data\\000001.jpg";
	vector<string> files;
	src = imread(src_dir);		//读取图片
	if (!src.data)
	{
		cout << "no img input...\n" << endl;
		return -1;
	}
	_src = src.clone();		//复制图片
	namedWindow("1", WINDOW_KEEPRATIO);		//新建窗口
	imshow("1", _src);						//显示图片
	waitKey(0);
	return 0;
}

显示视频

VideoCapture类:视频捕捉类,该语句实例化了一个对象inVid。这个类可以打开和关闭视频文件。这个对象可以打开和关闭ffmpeg支持的所有类型的视频文件。可以通过inVid.open()打开视频。
cv::WaitKey()函数:不断刷新图像,频率时间为delay,单位为ms。
返回值为当前键盘按键值。

#include
#include

using namespace cv;
using namespace std;

int main()
{
	Mat in_frame, out_frame;
	const char win1[] = "Grabbing...";
	const char win2[] = "Recoding...";
	double fps = 30;
	VideoCapture inVid(0);		//打开电脑自带的相机
	if (!inVid.isOpened())
	{
		cout << "Error! Camera not ready...\n";
		return -1;
	}
	namedWindow(win1);
	namedWindow(win2);
	while (1)
	{
		inVid >> in_frame;			//将inVid内容传入in_frame
		
		imshow("Video", in_frame);
		if (waitKey(1000 /fps) >= 0 )	//设置显示的频率
			break;
	}
	inVid.release();		//释放视频文件或视频设备
	return 0;
}

你可能感兴趣的:(opencv,C++)