OpenCV将彩色视频转换为灰度视频并保存

原创 2015年11月19日 14:21:09
#include "cxcore.h"
#include "cvcam.h"
#include "windows.h"
#include "cv.h"
#include "highgui.h"
#include "stdio.h"

#pragma comment(lib, "cv.lib")
#pragma comment(lib, "cxcore.lib")
#pragma comment(lib, "highgui.lib")

 
int main()
{
	CvCapture* capture = NULL;
	IplImage* bgr_frame = NULL;

	capture = cvCreateFileCapture( "tree.avi" );//函数给指定文件中的视频流分配和初始化CvCapture结构。
	if ( !capture )
	{
		return -1;
	}

//	cvNamedWindow("111",CV_WINDOW_AUTOSIZE);
//	cvNamedWindow("222",CV_WINDOW_AUTOSIZE);

	bgr_frame = cvQueryFrame(capture);// Init the video read 从摄像头或者文件中抓取并返回一帧 
	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	
*/

	CvVideoWriter *writer = cvCreateVideoWriter( "myvide.avi",	CV_FOURCC('X', 'V', 'I', 'D'), fps, size);
	IplImage* logpolar_frame = cvCreateImage( size, IPL_DEPTH_8U, 1);

	while( (bgr_frame = cvQueryFrame( capture )) != NULL )
	{
	//	cvShowImage("111", bgr_frame );
	    
	//  cvLogPolar(bgr_frame, logpolar_frame, cvPoint2D32f(bgr_frame->width/2, bgr_frame->height/2),40,CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS);
		cvCvtColor( bgr_frame, logpolar_frame, CV_BGR2GRAY );
		logpolar_frame->origin=1;//视频与原视频方向一致
		cvWriteFrame( writer, logpolar_frame );

	//	cvShowImage("222", logpolar_frame);

	//	char c=cvWaitKey(33);
	//	if(c==27) break;
	}

	//销毁窗口
//	cvDestroyWindow("111");
//  cvDestroyWindow("222");
//	cvDestroyAllWindows();

    //释放图像
	cvReleaseVideoWriter( &writer );
	cvReleaseImage( &logpolar_frame );
	cvReleaseCapture(&capture);

	return 0;
}

用openCV 写灰度视频

写视频文件关键在于各参数的设定,如编码器,帧率,彩色or gray 帧编码通过函数cvCreateVideoWriter () 构造一个“视频文件写手”CvVideoWriter* cvCreateV...
  • zhmyy
  • zhmyy
  • 2010年03月12日 17:22
  • 3698

Opencv彩色视频转换为灰度视频

#include using namespace cv; int main() { cvNamedWindow("PKU_Video", CV_WINDOW_AUTOSIZE); cvName...
  • lionpku
  • lionpku
  • 2015年03月05日 18:52
  • 593

将彩色视频转换为灰度视频源代码

很简单的功能,就是实现一个彩色视频转化为灰度视频 [cpp] view plain copy  print? #include "cv.h"   #...

将视频图像转化为灰度视频

大牛飘过,进阶中....., 很简单的功能,就是实现一个彩色视频转化为灰度视频 #include "cv.h" #include "highgui.h" #include "iostream....

彩色视频转换为灰度视频输出

#include #include #include using namespace cv; using namespace std; int main() { CvCapture...
  • lcc_633
  • lcc_633
  • 2016年04月17日 22:25
  • 581

利用OpenCV读入一个彩色视频文件并以灰度格式输出

#include "highgui.h"#include "cv.h"/** 读入一个彩色视频文件并以灰度格式输出这个视频文件* "学习OpenCV", P32, 例2-10* 2010-05-16*...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

opencv学习笔记(八)彩色视频转换成黑白视频

#include "cv.h"   #include "highgui.h"      int main(int argc, char** argv[])   {          CvCa...

OpenCV关于视频处理的学习(VideoCapture类)-在检测中一些必要的图像操作

前言知识在OpenCV中我们处理视频是先将视频保存成图像,然后再处理图像,将处理完的图像再生成视频这样子操作的。但是OpenCV中常见的图像操作有关容器有Mat,cvMat,IplImage等。在这些...

python opencv入门(读 / 写 显示以及转换图像 和 视频读入)

参考自:《Python计算机视觉》第十章 ######################################################## OpenCV提供了两个P...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenCV将彩色视频转换为灰度视频并保存
举报原因:
原因补充:

(最多只允许输入30个字)