源代码地址: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.1.7-学习Opencv与MFC混合编程之---为画图工具添加工具栏

    源代码:http://download.csdn.net/detail/nuptboyzhb/3961701 哎,其实里面有很多图片的,本来看起开很明了的,资源连接里有详细的文档,比下面的看的舒服的多 ...

  2. 1.1.4-学习Opencv与MFC混合编程之---画图工具 画椭圆

    源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961690 1.    增加‘椭圆’菜单项,设置属性,添加类向导: 2.    编辑消息处理函数, ...

  3. 1.0.x-学习Opencv与MFC混合编程之---视频运动检测

    源代码地址: http://download.csdn.net/detail/nuptboyzhb/3961668 版本1.0.x新增内容 视频运动检测 Ø 新建菜单项,Learning OpenCV ...

  4. 1.0.3-学习Opencv与MFC混合编程之---打开本地摄像头

    源代码:http://download.csdn.net/detail/nuptboyzhb/3961643 版本1.0.3新增内容 打开摄像头 Ø 新建菜单项,Learning OpenCV——&g ...

  5. 1.0.2-学习Opencv与MFC混合编程之---为播放AVI视频添加滑动条

    源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961642 版本1.0.2新增内容 Ø  全局变量和函数的添加: 在CVMFCview.cpp文件 ...

  6. 1.0.1-学习Opencv与MFC混合编程之---播放AVI视频

    资源源代码:http://download.csdn.net/detail/nuptboyzhb/3961639 版本1.0.1新增内容 Ø  新建菜单项,Learning OpenCV——> ...

  7. 1.1.5-学习Opencv与MFC混合编程之---画图工具 输入文字和填充图像 修改光标

    源代码:http://download.csdn.net/detail/nuptboyzhb/3961696 输入文字 l 对话框 1.    插入,资源,选择对话框资源 2.    编辑对话框如下: ...

  8. 1.1.6-学习Opencv与MFC混合编程之---播放WAV音乐和 alpha融合功能

    源代码:http://download.csdn.net/detail/nuptboyzhb/3961698 Alpha融合菜单项 1.      增加alpha融合菜单项,修改相应的属性,建立类向导 ...

  9. 1.1.3-学习Opencv与MFC混合编程之---画图工具 通过对话框进行工具的参数设置 画曲线 绘图校正

    源代码:http://download.csdn.net/detail/nuptboyzhb/3961688 l 对话框 1.“插入”->“资源”->“对话框” 2.对话框属性如下: 双击 ...

随机推荐

  1. (Problem 3)Largest prime factor

    The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 60085 ...

  2. solrCloud+tomcat+zookeeper配置

    一.环境准备: Solr版本:4.7.0 下载地址:http://www.apache.org/dyn/closer.cgi/lucene/solr/4.7.0 Tomcat版本:6.0.39 下载地 ...

  3. HDU Good Numbers (热身赛2)

    转载请注明出处:http://blog.csdn.net/a1dark 分析:一道水题.找下规律就OK了.不过要注意特判一下0.因为0也是good number.这个把我坑惨了= =||| #incl ...

  4. hadoop安全模式

      hadoop安全模式在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束.安全模式主要是为了系统启动的 ...

  5. python 字符串处理

    介绍字符串相关的:比较,截取,替换,长度,连接,反转,编码,格式化,查找,复制,大小写,分割等操作 什么是字符串 字符串 字符串或串(String)是由数字.字母.下划线组成的一串字符.一般记为 s= ...

  6. 交换机Trunk端口配置

    本文为转发,简单明了,我喜欢. Trunk端口的配置步骤如下: 一 组网需求: 1.SwitchA与SwitchB用trunk互连,相同VLAN的PC之间可以互访,不同VLAN的PC之间禁止互访: 2 ...

  7. Security:蠕虫的行为特征描述和工作原理分析

    ________________________ 参考: 百度文库---蠕虫的行为特征描述和工作原理分析 http://wenku.baidu.com/link?url=ygP1SaVE4t4-5fi ...

  8. Excel VBA ——批量工作表重命名

    虽然平常在用excel 2010重命名工作表的时候,一般可能会用"双击工作表"的方法来重名,但是遇到大批量重名的时候就很麻烦. 我的方法,先建一张新表,然后在第一列写好要命名的表名 ...

  9. typedef 总结

    其实在正儿八经学C语言的时候typedef用的不是很多,记得书上对它的介绍只是一笔带过.的确它的用法是很简单,但这不代表在使用的过程中不会出错,今天来个彻底的总结. 作用:用来建立新的数据类型名.(注 ...

  10. linux+nginx+mysql+php高性能服务器搭建

    1.安装基础包 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freet ...