opencv(7)
来源:互联网 发布:波什程序员 编辑:程序博客网 时间:2024/06/05 00:44
#include <cv.h>
#include <highgui.h>
//****************写入avi视频文件*************
int main()
{
CvCapture * capture = 0;//创建结构体
capture = cvCreateFileCapture("D:\\op\\man.avi");//原始视频地址
if (!capture){ return -1; }//读取失败
IplImage *bgr_img = cvQueryFrame(capture);//读取帧
double fps = cvGetCaptureProperty(capture,
CV_CAP_PROP_FPS);//获取capture的fps数据
CvSize imgsize = cvSize((int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH),
(int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT));//获取capture的size信息
CvVideoWriter * writer = cvCreateVideoWriter("D:\\op\\me2.avi",//输出视频被存放的地址
CV_FOURCC('M','J','P','G'),//指定编码格式
fps,//播放的帧率
imgsize);//视频图像的大小
IplImage * logpolar_image = cvCreateImage(imgsize, IPL_DEPTH_8U, 3);//创建转换后的结构体
cvNamedWindow("test_demo7", CV_WINDOW_AUTOSIZE);
while ((bgr_img = cvQueryFrame(capture)) != NULL)//若读取帧不为空
{
cvLogPolar(bgr_img,//原视频image结构体
logpolar_image, //转换后的image结构体
cvPoint2D32f(bgr_img->width / 2, bgr_img->height / 2),//极坐标中心
40,//缩放比例40
CV_INTER_LINEAR + CV_WARP_FILL_OUTLIERS);//转换成对应极坐标的形式;双线性插值+空白部分填充黑色
cvWriteFrame(writer, logpolar_image);//将转换后的logpolar_image写入视频writer
cvShowImage("test_demo7", logpolar_image);//输出图像确实长得很奇怪
char c = cvWaitKey(33);
if (c == 27) break;
#include <highgui.h>
//****************写入avi视频文件*************
int main()
{
CvCapture * capture = 0;//创建结构体
capture = cvCreateFileCapture("D:\\op\\man.avi");//原始视频地址
if (!capture){ return -1; }//读取失败
IplImage *bgr_img = cvQueryFrame(capture);//读取帧
double fps = cvGetCaptureProperty(capture,
CV_CAP_PROP_FPS);//获取capture的fps数据
CvSize imgsize = cvSize((int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH),
(int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT));//获取capture的size信息
CvVideoWriter * writer = cvCreateVideoWriter("D:\\op\\me2.avi",//输出视频被存放的地址
CV_FOURCC('M','J','P','G'),//指定编码格式
fps,//播放的帧率
imgsize);//视频图像的大小
IplImage * logpolar_image = cvCreateImage(imgsize, IPL_DEPTH_8U, 3);//创建转换后的结构体
cvNamedWindow("test_demo7", CV_WINDOW_AUTOSIZE);
while ((bgr_img = cvQueryFrame(capture)) != NULL)//若读取帧不为空
{
cvLogPolar(bgr_img,//原视频image结构体
logpolar_image, //转换后的image结构体
cvPoint2D32f(bgr_img->width / 2, bgr_img->height / 2),//极坐标中心
40,//缩放比例40
CV_INTER_LINEAR + CV_WARP_FILL_OUTLIERS);//转换成对应极坐标的形式;双线性插值+空白部分填充黑色
cvWriteFrame(writer, logpolar_image);//将转换后的logpolar_image写入视频writer
cvShowImage("test_demo7", logpolar_image);//输出图像确实长得很奇怪
char c = cvWaitKey(33);
if (c == 27) break;
}
cvReleaseVideoWriter(&writer);//释放writer
//cvReleaseImage(&bgr_img);bgr_img它不需要释放,否则会出现报错。原因:bgr_img使用的是通过cvqueryframe的capture的内存。当capture被释放后每一帧图像所对应的内存都会被释放。
cvReleaseImage(&logpolar_image);
cvReleaseCapture(&capture);
return (0);
}
cvReleaseVideoWriter(&writer);//释放writer
//cvReleaseImage(&bgr_img);bgr_img它不需要释放,否则会出现报错。原因:bgr_img使用的是通过cvqueryframe的capture的内存。当capture被释放后每一帧图像所对应的内存都会被释放。
cvReleaseImage(&logpolar_image);
cvReleaseCapture(&capture);
return (0);
}
0 0
- opencv(7)
- OpenCV Color Ttransfer(opencv)
- OpenCV-Python教程(7、Laplacian算子)
- OpenCV-Python教程(7、Laplacian算子)
- Python+OpenCV学习(7)---模板匹配
- opencv学习篇(7)基本绘图
- OpenCV(学习笔记7)-图像修复
- OpenCV学习笔记7 OpenCV核心模块与核心功能Core Module & Core Functionality(六)
- opencv学习(7)----opencv学习总结
- OpenCV(五): Opencv视频播放控制
- OpenCV学习笔记(1):配置OpenCV
- opencv学习笔记(1)-opencv安装
- openCV学习笔记(一)---初始openCV
- OpenCV 2.4.7 发布!
- Python-OpenCV教程-7
- opencv学习 - 7
- Opencv练习题3-7
- Python-OpenCV(7)
- 美赛matlab编程小总结
- iOS开发——网络上传
- 爱上机器学习
- 解析url参数
- MySQL的ODBC安装错误问题!
- opencv(7)
- git 错误
- 结构体排序
- 从头认识Spring-1.12 注入Map
- HDU 1391:Number Steps
- iOS 技能图谱
- Swift - TableView
- javax.persistence.Query getSingleResult() 的返回内容
- 51Nod 1405 树的距离之和(dp)