1.1-学习Opencv与MFC混合编程之---利用画图函数,生成视频,并写入视频文件
源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961674
写视频文件
Ø 新建菜单项,Learning OpenCV——> OpenCVr入门——>写视频文件
Ø 菜单项设置如下

Ø 建立类向导
Ø 编辑代码
voidCCVMFCView::OnMyWriteVedio()
{
// TODO: Add your command handler codehere
CStringcsAVI="AVI Files(*.avi)|*.avi|";
CStringcsFilter=csAVI;
CStringname[]={"","avi",""};
CStringstrFileName;
CStringstrExtension;
CFileDialogFileDlg(false,NULL,NULL,OFN_HIDEREADONLY,csFilter);
// 文件存盘对话框
if(FileDlg.DoModal()==IDOK ) { // 选择了文件名
strFileName= FileDlg.m_ofn.lpstrFile;
if(FileDlg.m_ofn.nFileExtension == 0) { // 无文件后缀
strExtension= name[FileDlg.m_ofn.nFilterIndex];
strFileName= strFileName + '.' + strExtension;
// 加文件后缀
}
int width = 1000, height = 700;
//-----------------------------------------------------
CvVideoWriter *vw;
vw= cvCreateVideoWriter (strFileName,-1,25, cvSize(width,height),1); //-1可以
//-----------------------------------------------------
int line_type = CV_AA; // changeit to 8 to see non-antialiased graphics
int i;
CvPoint pt1,pt2,pt_zhb;
double angle;
CvSize sz;
CvPoint ptt[6];
CvPoint* pt[2];
int arr[2];
CvFont font;
CvRNG rng;
int width3 = width*3, height3 =height*3;
CvSize text_size;
int ymin = 0;
// Load the source image
IplImage* image = cvCreateImage(cvSize(width,height), 8, 3 );
IplImage* image2;
// Create a window
cvNamedWindow(wndnamed, 1 );
cvZero( image );
cvShowImage(wndnamed,image);
cvWriteFrame(vw,image);
rng = cvRNG((unsigned)-1);
pt[0] = &(ptt[0]);
pt[1] = &(ptt[3]);
arr[0] = 3;
arr[1] = 3;
m_ImageType=-3;
for (i = 0; i< NUMBER; i++)
{
pt1.x=cvRandInt(&rng) %width3 - width;
pt1.y=cvRandInt(&rng) %height3 - height;
pt2.x=cvRandInt(&rng) %width3 - width;
pt2.y=cvRandInt(&rng) %height3 - height;
cvLine( image, pt1, pt2,random_color(&rng), cvRandInt(&rng)%10, line_type, 0 );
cvShowImage(wndnamed,image);
cvWriteFrame (vw,image);
cvWaitKey(DELAY);
}
for (i = 0; i< NUMBER; i++)
{
pt1.x=cvRandInt(&rng) %width3 - width;
pt1.y=cvRandInt(&rng) %height3 - height;
pt2.x=cvRandInt(&rng) %width3 - width;
pt2.y=cvRandInt(&rng) %height3 - height;
cvRectangle( image,pt1,pt2, random_color(&rng), cvRandInt(&rng)%10-1, line_type, 0 );
cvShowImage(wndnamed,image);
cvWriteFrame (vw,image);
cvWaitKey(DELAY);
}
for (i = 0; i< NUMBER; i++)
{
pt1.x=cvRandInt(&rng) %width3 - width;
pt1.y=cvRandInt(&rng) %height3 - height;
sz.width=cvRandInt(&rng)%200;
sz.height=cvRandInt(&rng)%200;
angle =(cvRandInt(&rng)%1000)*0.180;
cvEllipse( image, pt1, sz,angle, angle - 100, angle + 200,
random_color(&rng),cvRandInt(&rng)%10-1, line_type, 0 );
cvShowImage(wndnamed,image);
cvWriteFrame (vw,image);
cvWaitKey(DELAY);
}
for (i = 0; i< NUMBER; i++)
{
pt[0][0].x=cvRandInt(&rng)% width3 - width;
pt[0][0].y=cvRandInt(&rng)% height3 - height;
pt[0][1].x=cvRandInt(&rng)% width3 - width;
pt[0][1].y=cvRandInt(&rng)% height3 - height;
pt[0][2].x=cvRandInt(&rng)% width3 - width;
pt[0][2].y=cvRandInt(&rng)% height3 - height;
pt[1][0].x=cvRandInt(&rng)% width3 - width;
pt[1][0].y=cvRandInt(&rng)% height3 - height;
pt[1][1].x=cvRandInt(&rng)% width3 - width;
pt[1][1].y=cvRandInt(&rng)% height3 - height;
pt[1][2].x=cvRandInt(&rng)% width3 - width;
pt[1][2].y=cvRandInt(&rng)% height3 - height;
cvPolyLine( image, pt, arr,2, 1, random_color(&rng), cvRandInt(&rng)%10, line_type, 0 );
cvShowImage(wndnamed,image);
cvWriteFrame (vw,image);
cvWaitKey(DELAY);
}
for (i = 0; i< NUMBER; i++)
{
pt[0][0].x=cvRandInt(&rng)% width3 - width;
pt[0][0].y=cvRandInt(&rng)% height3 - height;
pt[0][1].x=cvRandInt(&rng)% width3 - width;
pt[0][1].y=cvRandInt(&rng)% height3 - height;
pt[0][2].x=cvRandInt(&rng)% width3 - width;
pt[0][2].y=cvRandInt(&rng)% height3 - height;
pt[1][0].x=cvRandInt(&rng)% width3 - width;
pt[1][0].y=cvRandInt(&rng)% height3 - height;
pt[1][1].x=cvRandInt(&rng)% width3 - width;
pt[1][1].y=cvRandInt(&rng)% height3 - height;
pt[1][2].x=cvRandInt(&rng)% width3 - width;
pt[1][2].y=cvRandInt(&rng)% height3 - height;
cvFillPoly( image, pt, arr,2, random_color(&rng), line_type, 0 );
cvShowImage(wndnamed,image);
cvWriteFrame (vw,image);
cvWaitKey(DELAY);
}
for (i = 0; i< NUMBER; i++)
{
pt1.x=cvRandInt(&rng) %width3 - width;
pt1.y=cvRandInt(&rng) %height3 - height;
cvCircle( image, pt1,cvRandInt(&rng)%300, random_color(&rng),
cvRandInt(&rng)%10-1,line_type, 0 );
cvShowImage(wndnamed,image);
cvWriteFrame (vw,image);
cvWaitKey(DELAY);
}
for (i = 1; i< NUMBER; i++)
{
pt1.x=cvRandInt(&rng) %width3 - width;
pt1.y=cvRandInt(&rng) %height3 - height;
cvInitFont( &font,cvRandInt(&rng) % 8,
(cvRandInt(&rng)%100)*0.05+0.1,(cvRandInt(&rng)%100)*0.05+0.1,
(cvRandInt(&rng)%5)*0.1,cvRound(cvRandInt(&rng)%10), line_type );
cvPutText( image, "Ilove zjq!", pt1, &font, random_color(&rng));
cvShowImage(wndnamed,image);
cvWriteFrame(vw,image);
cvWaitKey(DELAY);
}
cvInitFont( &font, CV_FONT_HERSHEY_COMPLEX,3, 3, 0.0, 5, line_type );
cvGetTextSize( "OpenCVforever!", &font, &text_size, &ymin );
pt1.x = (width -text_size.width)/2-80;
pt1.y = (height +text_size.height)/2-100;
image2 = cvCloneImage(image);
pt_zhb.x=pt1.x;
pt_zhb.y=pt1.y+300;
for( i = 0; i < 255; i++ )
{
cvSubS( image2,cvScalarAll(i), image, 0 );
cvPutText( image,"OpenCV forever!", pt1, &font, CV_RGB(255,i,i));
cvPutText( image,"Made By ZhengHB!", pt_zhb, &font, CV_RGB(255,i,i));
cvShowImage(wndnamed,image);
cvWriteFrame(vw,image);
cvWaitKey(DELAY);
}
// Wait for a key stroke; the samefunction arranges events processing
cvReleaseVideoWriter (&vw);
cvWaitKey(0);
cvReleaseImage(&image);
cvReleaseImage(&image2);
cvDestroyWindow(wndnamed);
}
}
from:http://blog.csdn.net/nupt123456789/article/details/7100125
1.1-学习Opencv与MFC混合编程之---利用画图函数,生成视频,并写入视频文件的更多相关文章
- 1.1.7-学习Opencv与MFC混合编程之---为画图工具添加工具栏
源代码:http://download.csdn.net/detail/nuptboyzhb/3961701 哎,其实里面有很多图片的,本来看起开很明了的,资源连接里有详细的文档,比下面的看的舒服的多 ...
- 1.1.4-学习Opencv与MFC混合编程之---画图工具 画椭圆
源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961690 1. 增加‘椭圆’菜单项,设置属性,添加类向导: 2. 编辑消息处理函数, ...
- 1.0.x-学习Opencv与MFC混合编程之---视频运动检测
源代码地址: http://download.csdn.net/detail/nuptboyzhb/3961668 版本1.0.x新增内容 视频运动检测 Ø 新建菜单项,Learning OpenCV ...
- 1.0.3-学习Opencv与MFC混合编程之---打开本地摄像头
源代码:http://download.csdn.net/detail/nuptboyzhb/3961643 版本1.0.3新增内容 打开摄像头 Ø 新建菜单项,Learning OpenCV——&g ...
- 1.0.2-学习Opencv与MFC混合编程之---为播放AVI视频添加滑动条
源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961642 版本1.0.2新增内容 Ø 全局变量和函数的添加: 在CVMFCview.cpp文件 ...
- 1.0.1-学习Opencv与MFC混合编程之---播放AVI视频
资源源代码:http://download.csdn.net/detail/nuptboyzhb/3961639 版本1.0.1新增内容 Ø 新建菜单项,Learning OpenCV——> ...
- 1.1.5-学习Opencv与MFC混合编程之---画图工具 输入文字和填充图像 修改光标
源代码:http://download.csdn.net/detail/nuptboyzhb/3961696 输入文字 l 对话框 1. 插入,资源,选择对话框资源 2. 编辑对话框如下: ...
- 1.1.6-学习Opencv与MFC混合编程之---播放WAV音乐和 alpha融合功能
源代码:http://download.csdn.net/detail/nuptboyzhb/3961698 Alpha融合菜单项 1. 增加alpha融合菜单项,修改相应的属性,建立类向导 ...
- 1.1.3-学习Opencv与MFC混合编程之---画图工具 通过对话框进行工具的参数设置 画曲线 绘图校正
源代码:http://download.csdn.net/detail/nuptboyzhb/3961688 l 对话框 1.“插入”->“资源”->“对话框” 2.对话框属性如下: 双击 ...
随机推荐
- Swift主题色顶级解决方案一
一.常规主题色使用点 应用在发布前都会对其主题色进行设置,以统一应用的风格(可能有多套主题).在主题色设置上有几个方面,如下: 1.TabBar部分,设置图片高亮.文本高度颜色 2.Navigatio ...
- BootStrap - 时间组件
效果: CSS代码: JS代码: 调用:
- BZOJ 1738: [Usaco2005 mar]Ombrophobic Bovines 发抖的牛( floyd + 二分答案 + 最大流 )
一道水题WA了这么多次真是.... 统考终于完 ( 挂 ) 了...可以好好写题了... 先floyd跑出各个点的最短路 , 然后二分答案 m , 再建图. 每个 farm 拆成一个 cow 点和一个 ...
- 动态加载EXE和DLL
程序中加载了一个DLL文件,但生成的EXE在脱离了DLL文件后仍然可以 单独使用,这是动态加载DLL技术.即:调用资源中的DLL. 此技术的好处:EXE可以使用DLL中的函数,但不会额外增加一 个DL ...
- IBM Python 技术专题
Python 技术专题 Python 是由 Guido van Rossum 开发的,可免费获得的.是一种非常高级的解释型语言.其语法简单易懂,而且面向对象的语义功能强大又灵活,Python 可以广泛 ...
- 基于visual Studio2013解决算法导论之049活动选择问题
题目 活动选择问题 解决代码及点评 // 活动选择问题.cpp : 定义控制台应用程序的入口点. // #include<iostream> #define N 100 using ...
- 基于visual Studio2013解决C语言竞赛题之0604二维数组置换
题目
- 【Linux驱动器】Linux-2.6.20.4内核移植
最近一段时间以来一直学习TQ2440内核开发板移植.嫁接驱动器. 真诚地相信这方面的知识有很大的困难,.但有一种观点认为,从看,难度越大,的提升空间的能力更大! ! 1.解压源代码 从Internet ...
- 安卓开发-Activity中finish() onDestroy() 和System.exit()的区别
Activity.finish()Call this when your activity is done and should be closed. 在你的activity动作完成的时候,或者Act ...
- jquery ajax调用返回json格式数据处理
Ajax请求默认的都是异步的 如果想同步 async设置为false就可以(默认是true) var html = $.ajax({ url: "some.php", async: ...