OpenCV学习笔记04--图片和视频的保存
来源:互联网 发布:人工智能的利弊 作文 编辑:程序博客网 时间:2024/05/14 20:40
例六:保存图片
新加入的函数:
1.cvSaveImage(outImageName, outImage);
用cvSaveImage(outImageName, outImage)即可方便的保存图片。当然为了安全,可以先将原图进行拷贝,再进行保存
2.cvCopy(frame, outImage, NULL);
将原图拷贝到新图
#include "stdafx.h" #include"highgui.h" #include"stdio.h" int main(int argc, char** argv){cvNamedWindow("vedio");CvCapture* capture;capture = cvCreateCameraCapture(0);IplImage* frame;char keyCode;while ((keyCode = cvWaitKey(30)))// 每隔30ms捕捉一次视频图像 {frame = cvQueryFrame(capture);if (!frame){ break; }if (keyCode == 27){ break; } //表示按下了ESC键,退出 if (keyCode == 13)//表示按下了回车键,此时应当保存照片 {//IplImage* outImage = cvCreateImage(cvGetSize(frame), frame->depth, frame->nChannels);//cvCopy(frame, outImage, NULL); cvSaveImage("test.jpg", frame);//保存图片printf(" 恭喜你,保存图片成功!\n");}cvShowImage("vedio", frame);}cvReleaseImage(&frame);cvDestroyAllWindows();return 0;}
例七:保存视频文件
一:将视频文件保存为AVI格式文件
本例新加入的几个函数:
1.cvCreateVideoWriter("D:\\output.avi", CV_FOURCC('M', 'J', 'P', 'G'), fps, size);
用来创建一个视频写入器结构来保存视频,参数分别为输出的文件名,编码方式,帧率。视频流帧的大小。OpenCV用CV_FOURCC来指定编码格式。而fps和size和读入的文件保持一致,所以分别用cvGetCaptureProperty(capture, CV_CAP_PROP_FPS)得到帧率即每秒钟显示的帧数,用cvSize((int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH), (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT))得到输出视频流帧的大小。
2.cvWriteFrame(writer, logpolar_frame);
将一帧写入视频写入器结构,参数分别为视频写入器结构和待写入的图像
3.void cvLogPolar( const CvArr* src, CvArr* dst, CvPoint2D32f center, double M, int flags=CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS );
把图像映射到极指数空间。 src 输入图像。 dst 输出图像。 center 变换的中心,输出图像在这里最精确。M 是指幅度的尺度参数。使用此函数模拟真实的人眼效果。
#include "stdafx.h"#include "highgui.h"#include "cv.h" int _tmain(int argc, _TCHAR* argv[]){CvCapture* capture = cvCreateFileCapture("D:\\1.wmv");if (!capture) {return -1;}IplImage* bgr_frame;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));//输出视频流帧的大小CvVideoWriter *writer = cvCreateVideoWriter("D:\\output.avi", CV_FOURCC('M', 'J', 'P', 'G'), fps, size);//创建视频写入器结构来保存视频,参数分别为输出的文件名,编码方式,帧率。视频流帧的大小// IplImage* logpolar_frame = cvCreateImage(size, IPL_DEPTH_8U, 3);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);//cvWriteFrame(writer, logpolar_frame);cvWriteFrame(writer, bgr_frame); //将一帧写入视频写入器结构}cvReleaseVideoWriter(&writer);//cvReleaseImage(&logpolar_frame);cvReleaseCapture(&capture);return 0;}
二:将摄像头采集到的信息保存为AVI格式文件
<pre name="code" class="cpp">#include "stdafx.h"#include "highgui.h"#include "cv.h"int _tmain(int argc, _TCHAR* argv[]){cvNamedWindow("test", 0);CvCapture* capture = cvCreateCameraCapture(0);if (!capture) {return -1;}IplImage* bgr_frame;CvSize size=cvSize((int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH), (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT));//输出视频流帧的大小CvVideoWriter *writer = cvCreateVideoWriter("D:\\output.avi", CV_FOURCC('M', 'J', 'P', 'G'), 20, size);//创建视频写入器结构来保存视频,参数分别为输出的文件名,编码方式,帧率。视频流帧的大小while ((bgr_frame = cvQueryFrame(capture)) != NULL){bgr_frame = cvQueryFrame(capture);cvShowImage("test", bgr_frame);int c = cvWaitKey(50); if (c == 27) break;//IplImage* logpolar_frame = cvCreateImage(size, IPL_DEPTH_8U, 3);// cvLogPolar(bgr_frame, logpolar_frame, cvPoint2D32f(bgr_frame->width / 2, bgr_frame->height / 2), 40, CV_INTER_LINEAR + CV_WARP_FILL_OUTLIERS);cvWriteFrame(writer, bgr_frame); //将一帧写入视频写入器结构}cvReleaseVideoWriter(&writer);cvReleaseImage(&logpolar_frame);cvReleaseCapture(&capture);return 0;}
- OpenCV学习笔记04--图片和视频的保存
- opencv学习笔记--将多帧图片保存为视频
- Opencv中将视频保存为连续的图片和连续的图片保存为视频
- Opencv中将视频保存为连续的图片和连续的图片保存为视频
- Opencv中将视频保存为连续的图片和连续的图片保存为视频
- OpenCV中将视频保存为连续的图片和连续的图片保存为视频
- Opencv中将视频保存为连续的图片和连续的图片保存为视频
- Opencv中将视频保存为连续的图片和连续的图片保存为视频
- Opencv中将视频保存为连续的图片和连续的图片保存为视频
- OpenCV学习笔记(02) :OpenCV拍摄视频并保存
- OpenCV学习笔记(12)OpenCV调用Matlab函数进行保存视频的尝试
- OpenCV学习笔记之八(保存视频,录制视频,cvLoadImage的路径)
- opencv截取视频图片保存
- opencv学习笔记(1)——读取路径显示图片和保存jpg图片
- opencv将视频读到的帧保存成图片
- opencv把视频的每一帧保存为图片
- opencv学习笔记(九)捕获摄像头的视频并保存成avi格式
- OpenCV学习笔记01--图像和视频的显示
- PRG PAULIN v2011 1CD(专业压力容器和管道有限元)
- Folder Structure for Single Page Applications
- 十二周——多态性——项目一(3)动物怎么叫
- 经典FormsAuthenticationTicket 分析
- Internal Sorting: Quicksort-1:Sorting by Exchanging
- OpenCV学习笔记04--图片和视频的保存
- JSEE总结(一)——JNDI
- HDU 1690 Bus System (Floyed求最短路)
- ViewUtils模块的使用
- 使用 FileSystem JAVA API 对 HDFS 进行读、写、删除等操作
- 实现一个通讯录并将信息保存到文本中
- CSU 文本计算器
- 学习笔记一:TCP与UDP通信协议
- CreateFile 打开 I/O device