OpenCV学习笔记01--图像和视频的显示

来源:互联网 发布:mac用搜狗输入法 编辑:程序博客网 时间:2024/05/24 01:51

 

例一:显示图像

学到的函数:

1.cvLoadImage("D:\\02.jpg")

  将一副图像加载进内存,返回图像的指针

2.cvNamedWindow("Example", 0)

  创建一个窗口显示图像,标题为Example.第二个参数为0图片填充窗口,CV_WINDOW_AUTOSIZE为这个窗口适应图片

3.cvShowImage("Example", img)

  在Example窗口中显示img图片

4.cvWaitKey(0)   

  参数为等待按键按下的时间,即程序静止的时间,单位为ms。若为0一直等待直到按键按下


Opencv显示图像有如下几个过程,首先,建立一个窗口用来显示图像,第二步,将图像加载进内存,第三步显示图像。

加载完毕后为了让其保持显示状态,可以用cvWaitKey(0)使其在按键按下后再执行之后的操作。当其参数为非0x时,表示在xms后执行之后的操作。

而程序执行完毕后为了安全性需要释放内存和窗口。虽然在关闭窗口时系统会自动释放这些资源,可是养成习惯显示释放资源对之后的开发是有好处的。


#include "stdafx.h"

#include "highgui.h"

int _tmain(int argc, char** argv){IplImage* img = cvLoadImage("D:\\02.jpg");cvNamedWindow("Example", 0);//创建一个窗口显示图像,标题为Example.第二个参数为0图片填充窗口,CV_WINDOW_AUTOSIZE为这个窗口适应图片cvShowImage("Example", img);   //在Example窗口中显示img图片cvWaitKey(0);               //等待按键按下cvReleaseImage(&img);     //释放内存cvDestroyWindow("Example");  //释放窗口while (1);}

 

例二:显示视频

新加入的函数:

1.CvCapture* capture = cvCreateFileCapture("D:\\1.wmv"); 

  读入视频文件,返回指向CvCapture的指针

2.frame = cvQueryFrame(capture);

  将下一帧视频文件载入内存,返回下一帧的指针

3.cvCreateCameraCapture(0);

  读取摄像机图像,返回指向CvCapture的指针,参数为-1会让选择摄像机


显示视频和显示图像相比,只是把视频文件一帧一帧地以图像的方式显示。而实现这一功能的是cvQueryFrame()函数,这个函数将视频文件一帧一帧的分开,返回下一帧的图像对应的指针。

显示视频和显示图像几乎没有区别,首先,建立一个窗口用来显示图像,第二步,将视频加载进内存,第三步,得到视频中的当前帧的图像,第四步,显示图像。

当然,其内部还是有一些微小的区别:

一、读入图片是用cvLoadImage,返回的指针是IplImage*;而读入视频是用cvCreatFileCapture,而其返回的指针是CvCapture*

二、释放内存时显示图像需要释放图片占用的内存,而显示视频图像是从视频中获取的,所以需要释放的是视频的内存。

int _tmain(int argc, _TCHAR* argv[]){cvNamedWindow("Opencv", 0);//IplImage* img = cvLoadImage("D:\\2.JPG");//CvCapture* capture = cvCreateFileCapture("D:\\1.wmv"); //读入视频文件,返回指向CvCapture的指针CvCapture* capture = cvCreateCameraCapture(0);//获取摄像头采集的视频,返回指向CvCapture的指针IplImage* frame;while (1){frame = cvQueryFrame(capture);//将下一帧视频文件载入内存,返回下一帧的指针if (!frame) break;    cvShowImage("Opencv", frame);    char c = cvWaitKey(33);  //每33ms显示一帧图像if (c == 27) break; //27对应的是ESC键,即当ESC键按下时退出} cvReleaseCapture(&capture);cvDestroyWindow("Opencv");    return 0;}



0 0
原创粉丝点击