opencv第二章-显示一张图片和播放avi视频
opencv第二章-显示一张图片和播放avi视频
1)显示一张图片
#include <opencv2/opencv.hpp> //头文件
using namespace cv; //包含cv命名空间
void main( )
{
// 【1】读入一张图片,载入图像
Mat srcImage = imread("1.jpg");
// 【2】显示载入的图片
imshow("【原始图】",srcImage);
// 【3】等待任意按键按下
waitKey(0);
}
(a)这是最新版的显示图片程序,省略了很多创建窗口和关闭窗口的程序。来看一下每句话的意思:
Mat srcImage = imread("1.jpg");//创建图像矩阵,矩阵元素为图像的像素,读入了图像。
(b)读入函数imread()的原型如下:
CV_EXPORTS_W Mat imread( const string& filename, int flags=1 )
第一个参数是文件路径,就是文件名,用双引号来表示文件名字符串
第二个参数是图像的大小,默认为1,就是原图。
(c)waitKye(0)的原型如下:
CV_EXPORTS_W int waitKey(int delay=0);
括号内的参数delay是表示要延时的时间,单位是ms毫秒。
(c)imshow()函数
CV_EXPORTS_W void imshow( const string& winname, InputArray mat );
第一个参数是要显示的窗口名称,用双引号来表示字符串
第二个参数是要显示的图像矩阵
2)老版本的程序如下:
int main()
{
IplImage *img=cvLoadImage("1.jpg");
cvNamedWindow("Example1",CV_WINDOW_AUTOSIZE);
cvShowImage("Example1",img);
cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyWindow("Example1");
}
3)播放avi视频
#include <opencv2/opencv.hpp> //头文件
using namespace cv; //包含cv命名空间
int main( )
{
//【1】读入视频
VideoCapture capture("1.avi");
//【2】循环显示每一帧
while(1)
{
Mat frame;//定义一个Mat变量,用于存储每一帧的图像
capture>>frame; //读取当前帧
imshow("读取视频",frame); //显示当前帧
waitKey(30); //延时30ms
}
return 0;
}