利用OpenCV读入一个彩色视频文件并以灰度格式输出
2010-05-16 13:14
537 查看
#include "highgui.h" #include "cv.h" /* * 读入一个彩色视频文件并以灰度格式输出这个视频文件 * "学习OpenCV", P32, 例2-10 * 2010-05-16 */ int main( int argc, char** argv ) { CvCapture* capture = 0; capture = cvCreateFileCapture( argv[1] ); if( !capture ) return -1; IplImage* bgr_frame = cvQueryFrame( capture );//Init the video read double fps = cvGetCaptureProperty( capture, CV_CAP_PROP_FPS );//获取fps CvSize size = cvSize( (int)cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_WIDTH), (int)cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_HEIGHT) ); CvVideoWriter *writer = cvCreateVideoWriter( argv[2], CV_FOURCC('X','V','I','D'), fps, size ); IplImage* logpolar_frame = cvCreateImage( size, IPL_DEPTH_8U, 1 ); while( (bgr_frame = cvQueryFrame(capture)) != NULL ) { // 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_RGB2GRAY );//彩色转换为灰度图像 cvFlip( logpolar_frame, NULL, 0 );//翻转图像 cvWriteFrame( writer, logpolar_frame ); } cvReleaseVideoWriter( &writer ); cvReleaseImage( &logpolar_frame ); cvReleaseCapture( &capture ); return(0); }
代码出处:《学习OpenCV(中文版)》, Gary Bradski & Adrian Kaehler著,于仕琪、刘瑞祯译
P32, 例2-10
修改:
1. cvCvtColor( bgr_frame, logpolar_frame, CV_RGB2GRAY );//彩色转换为灰度图像
cvFlip( logpolar_frame, NULL, 0 );//翻转图像
将彩色转换为灰度图像后,图像会翻转,不知为什么。所以用cvFlip再翻转一次图像。
2. 将MJPG编码格式改为XVID格式。
3. 将新图像logpolar_frame的位深度改为1.
相关文章推荐
- 实现读入一个彩色视频文件并以灰度格式输出这个视频文件,学习opencv例2-10
- Opencv中的Bug(实现读入一个彩色视频文件并以灰度格式输出这个视频文件,学习opencv例2-10)
- OpenCV中,将一个彩色视频文件以灰度格式输出
- OPENCV关于彩色视频以灰度格式输出会翻转的问题
- opencv 学习第二天 学习opencv(中文版)将一个视频读入后以灰度方式输出
- 利用Lucene把文本的字体格式进行改动,然后输出到一个新的文件里
- 利用FFmpeg将H.264文件读入内存,再输出封装格式文件
- 利用Lucene把文本的字体格式进行修改,然后输出到一个新的文件中
- ffmpeg将一个视频文件解码输出bmp和jpg文件--重写tutorial01程序
- opencv for python (2) 视频的读入、输出、保存
- 关于ffmpeg 的总结(一个linux 下 集 屏幕录像录音,音频视频转换,合并音频视频文件,格式转换于一身的命令)
- Opencv彩色视频转换为灰度视频
- opencv读取彩色/灰度图片像素值并存储在本地文件中c++代码实例及运行结果
- opencv读取彩色/灰度图片像素值并存储在本地文件中c++代码实例及运行结果
- 利用MediaPlayer 获取一个音频或者视频文件的播放时长
- 关于ffmpeg 的总结(一个linux 下 集 屏幕录像录音,音频视频转换,合并音频视频文件,格式转换于一身的命令)
- ffmpeg 重写tutorial01程序--将一个视频文件解码输出ppm文件或bmp文件
- 利用Python将WEBVTT格式的视频字幕文件转为SRT格式
- 【Hadoop】利用MultipleOutputs,MultiOutputFormat实现以不同格式输出到多个文件
- 创建一个程序读入和显示视频文件,并可以使用滑动条控制视频文件的播放。一个滑动条用来控制视频播放位置,以10为步长跳进。另一个滑动条用来控制停止/播放