opencv 显示一个图片/播放视频

来源:互联网 发布:展板制作软件下载 编辑:程序博客网 时间:2024/05/22 05:27
//显示图片
#include"highgui.h"
int main(int argc,char **argv)
{
    IplImage *img=NULL;
    char *imgname="E:/实验/image/1.jpg";
    img=cvLoadImage(imgname);//cvLoadImage加载一个图片 并返回一个IplImage指针
    cvNamedWindow("test",0);//创建一个叫test的窗口,窗口大小固定
    cvShowImage("test",img);//在窗口test中显示图片
    cvWaitKey(0);///等待按键进行下一步操作,若参数为正整数,则停留一段设置的时间
    cvReleaseImage(&img);//释放图片所占内存
    cvDestroyWindow("test");//销毁窗口
    return 0;

}

//播放视频

#include"highgui.h"
int main(int argc,char **argv)
{
    
    //播放视频,不过没声音
    cvNamedWindow("test",CV_WINDOW_AUTOSIZE);//创建一个test窗口
    CvCapture*capture=cvCreateFileCapture("E:/实验/image/adr.mkv");//读入一个视频文件并返回一个CvCapture指针(包括了读入视频的所有信息)
    IplImage *frame;//存储视频中的每一帧图片
    while(1)//循环体内读取capture中的每一帧图片
    {
        frame=cvQueryFrame(capture);//cvQueryFrame用来将下一帧视频文件载入内存,并返回当前帧的指针
        // cvLoadImage与cvQueryFrame的区别是前者为图像分配内存空间,所以当程序结束时要释放内存空间,
        //而后者使用已经在cvCapture结构中分配好的内存,因此没必要再调用cvReleaseImage
        if(!frame) break;//判断视频是否结束
        cvShowImage("test",frame);
        char c=cvWaitKey(33);//当前帧显示后等候33ms,如果期间用户出发了一个按键,c会被设置成这个按键的ASCII码
        if(c==27) break;//当用户按ESC键(ASCII27)时视频结束
    }
    cvReleaseCapture(&capture);
    cvDestroyWindow("test");
    return 0;
}

1 0
原创粉丝点击