简单的图像及视频显示

图像显示:

#include "highgui.h"

int _tmain(int argc, _TCHAR* argv[])
{
    IplImage *a = cvLoadImage("lena.jpg");
    cvNamedWindow("lena", 1);
    cvShowImage("lena", a);
    cvWaitKey();
    cvReleaseImage(&a);
    cvDestroyWindow("lena");
    return 0;
}

IplImage *a = cvLoadImage(“lena.jpg”);//函数参数为图片地址
cvNamedWindow(“lena”, 1);//lena代表创建的窗口名,第二个参数为1图片自动调节大小,为0则可以手动调节窗口大小,图像大小随之改变
cvShowImage(“lena”, a);//第一个参数lena为已创建的窗口名,第二个参数a为图像指针
cvWaitKey();//等待,参数为0则显示图片(或视频第一帧),>0可以用来显示视频
cvReleaseImage(&a);//释放图片地址
cvDestroyWindow(“lena”);//释放窗口

视频显示:

#include “highgui.h”
int main( int argc, char** argv ) 
{
cvNamedWindow( “Example2”, CV_WINDOW_AUTOSIZE );
CvCapture* capture = cvCreateFileCapture( argv[1] );
IplImage* frame;
while(1) {
frame = cvQueryFrame( capture );
if( !frame ) break;
cvShowImage( “Example2”, frame );
char c = cvWaitKey(33);
if( c == 27 ) break;
}
cvReleaseCapture( &capture );
cvDestroyWindow( “Example2” );
}

CvCapture* capture = cvCreateFileCapture( argv[1] );//读取AVI视频,返回指针
frame = cvQueryFrame( capture );//读取当前帧
char c = cvWaitKey(33);//过33ms显示下一帧,c用来控制在视频播放过程中希望退出的情况
if( c == 27 ) break;//Esc键值为ASCII27,若播放中按下Esc键,则退出,否则33ms后播放下一帧
cvReleaseCapture( &capture );
cvDestroyWindow( “Example2” );//释放时只需要释放视频指针和窗口

猜你喜欢

转载自blog.csdn.net/sjtuxx_lee/article/details/74607764