OpenCV笔记之一:将RGB视频转换为灰度输出并在窗口显示

来源:互联网 发布:英雄杀mac 编辑:程序博客网 时间:2024/05/01 04:25
#include "highgui.h"#include "cv.h"int main(int argc, char** argv){CvCapture* capture = NULL;IplImage* bgr_frame = NULL;capture = cvCreateFileCapture( "viplanedeparture.avi" );//初始化CvCapture结构。if ( !capture ){return -1;}        cvNamedWindow("Original",CV_WINDOW_AUTOSIZE);        cvNamedWindow("RGB2GRAY",CV_WINDOW_AUTOSIZE);bgr_frame = cvQueryFrame(capture);// 提取视频流帧 double fps = cvGetCaptureProperty( capture, CV_CAP_PROP_FPS );CvSize size = cvSize( ( int ) cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_WIDTH ),                      ( int ) cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_HEIGHT ) );/*    用cvCreateVideoWriter创建写AVI文件的容器时,当它的第二个参数是-1时,弹出对话框,    选择压缩编码方式,然后写avi视频正确,并且能打开。CV_FOURCC('P','I','M','1') = MPEG-1 codec CV_FOURCC('M','J','P','G') = motion-jpeg codec (does not work well)CV_FOURCC('M', 'P', '4', '2') = MPEG-4.2 codec      CV_FOURCC('D', 'I', 'V', '3') = MPEG-4.3 codec      CV_FOURCC('D', 'I', 'V', 'X') = MPEG-4 codec  失败            CV_FOURCC('X', 'V', 'I', 'D') = MPEG-4 codec  成功      CV_FOURCC('U', '2', '6', '3') = H263 codec      CV_FOURCC('I', '2', '6', '3') = H263I codec      CV_FOURCC('F', 'L', 'V', '1') = FLV1 codec*///设定尺寸和图像数据精度以及每个像素的通道数IplImage* gray_frame = cvCreateImage( size, IPL_DEPTH_8U, 1); while( (bgr_frame = cvQueryFrame( capture )) != NULL ){  cvShowImage("Original", bgr_frame );      cvCvtColor( bgr_frame, gray_frame, CV_BGR2GRAY );    gray_frame->origin=1;//视频与原视频方向一致,图像原点位置: 0表示顶-左结构,1表示底-左结构    cvShowImage("RGB2GRAY", gray_frame);                char c=cvWaitKey(33);   //自动刷新  if(c==27) break;        //响应键盘按键 }//销毁窗口 cvDestroyWindow("Original");  
        cvDestroyWindow("RGB2GRAY");     cvDestroyAllWindows();    //释放图像cvReleaseImage( &gray_frame );     cvReleaseCapture(&capture);        return 0;}

0 0
原创粉丝点击