1.1.6-学习Opencv与MFC混合编程之---播放WAV音乐和 alpha融合功能
源代码:http://download.csdn.net/detail/nuptboyzhb/3961698
Alpha融合菜单项
1. 增加alpha融合菜单项,修改相应的属性,建立类向导,编辑消息处理函数。
2. 在消息处理函数中添加如下代码
void CCVMFCView::OnAlphaMix()
{
//TODO: Add your command handler code here
//TODO: Add your command handler code here
IplImage*src1, *src2;
CStringcsAVI="src1 Files(lena.bmp)|*.bmp|";
CString csFilter=csAVI;
CStringcsFilter2="src2 Files(gs76.bmp)|*.bmp|";
CStringname[]={"","bmp",""};
CStringstrFileName;
CStringstrExtension;
CFileDialogFileDlg(true,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;
// 加文件后缀
}
src1=cvLoadImage(strFileName);
if(src1)
{
MessageBox("还需要打开一张图片!");
}
CFileDialog FileDlg(true,NULL,NULL,OFN_HIDEREADONLY,csFilter2);
if(FileDlg.DoModal()==IDOK ) { // 选择了文件名
strFileName= FileDlg.m_ofn.lpstrFile;
if(FileDlg.m_ofn.nFileExtension == 0) { // 无文件后缀
strExtension= name[FileDlg.m_ofn.nFilterIndex];
strFileName= strFileName + '.' + strExtension;
// 加文件后缀
}
src2=cvLoadImage(strFileName);
cvNamedWindow("src1",CV_WINDOW_AUTOSIZE);
cvMoveWindow("src1",300,300);
cvShowImage("src1",src1);
cvNamedWindow("src2",CV_WINDOW_AUTOSIZE);
cvMoveWindow("src2",300+src1->width,300);
cvShowImage("src2",src2);
intx = 112;
int y = 123;
int width =src2->width;
int height =src2->height;
double alpha = 0.5;
double beta = 1-alpha;
cvSetImageROI(src1, cvRect(x,y,width,height));
cvSetImageROI(src2, cvRect(0,0,width,height));
cvAddWeighted(src1, alpha, src2, beta,0.0,src1);
cvResetImageROI(src1);
cvNamedWindow( "Alpha_blend",CV_WINDOW_AUTOSIZE );
cvMoveWindow("Alpha_blend",350+src1->width+src2->width,300);
cvShowImage( "Alpha_blend", src1 );
cvWaitKey(0);
cvReleaseImage(&src1);
cvReleaseImage(&src2);
}
}
}
播放wav音乐
1.插入资源(插入->资源->定制->(输入WAVA))
2.在resources中找到"WAVA"文件,打开有个IDR_WAVA1
3.右键->import->浏览后缀名为.wav的音频文件
4.在CXXXXView的构造函数中添加:
PlaySound(MAKEINTRESOURCE(IDR_TAOBAO_SENT_SOUND),AfxGetResourceHandle(),SND_ASYNC|SND_RESOURCE);
5.在该文件的上方,添加头文件#include"mmsystem.h"
6.工程->设置->连接->库模板添加"winmm.lib"
1.1.6-学习Opencv与MFC混合编程之---播放WAV音乐和 alpha融合功能的更多相关文章
- 1.0.1-学习Opencv与MFC混合编程之---播放AVI视频
资源源代码:http://download.csdn.net/detail/nuptboyzhb/3961639 版本1.0.1新增内容 Ø 新建菜单项,Learning OpenCV——> ...
- 1.1-学习Opencv与MFC混合编程之---利用画图函数,生成视频,并写入视频文件
源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961674 写视频文件 Ø 新建菜单项,Learning OpenCV——> OpenCVr ...
- 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.1.7-学习Opencv与MFC混合编程之---为画图工具添加工具栏
源代码:http://download.csdn.net/detail/nuptboyzhb/3961701 哎,其实里面有很多图片的,本来看起开很明了的,资源连接里有详细的文档,比下面的看的舒服的多 ...
- 1.1.5-学习Opencv与MFC混合编程之---画图工具 输入文字和填充图像 修改光标
源代码:http://download.csdn.net/detail/nuptboyzhb/3961696 输入文字 l 对话框 1. 插入,资源,选择对话框资源 2. 编辑对话框如下: ...
- 1.1.4-学习Opencv与MFC混合编程之---画图工具 画椭圆
源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961690 1. 增加‘椭圆’菜单项,设置属性,添加类向导: 2. 编辑消息处理函数, ...
- 1.1.3-学习Opencv与MFC混合编程之---画图工具 通过对话框进行工具的参数设置 画曲线 绘图校正
源代码:http://download.csdn.net/detail/nuptboyzhb/3961688 l 对话框 1.“插入”->“资源”->“对话框” 2.对话框属性如下: 双击 ...
随机推荐
- Apple Swift 中文教程 高速參考 基本的语法
总的来说.语法有java的味道,也有python的味道,还有swift自己的味道. 有些语法还是挺不伦不类的,不太好理解,即使你有几年的java或python经验,也不见得有些语法你能非常轻松的看明确 ...
- Android图片异步加载的方法
很多时候,我们在加载大图片或者需要处理较多图像数据的时候,希望显示效果能好点,不至于因为图片解码耗时产生ANR等情况,不得不说异步加载是个不错的方法.说到异步加载,避免application出现ANR ...
- 如何用 Swift 语言构建一个自定控件
(via:破船之家,原文:How To Make a Custom Control in Swift) 用户界面控件是所有应用程序重要的组成部分之一.它们以图形组件的方式呈现给用户,用户可以通过它 ...
- tomcat解析之简单web服务器(图)
链接地址:http://gogole.iteye.com/blog/587163 之前有javaeyer推荐了一本书<how tomcat works>,今天晚上看了看,确实不错,第一眼就 ...
- javascript面向对象——继承
javascript和其他语言相比,它没有真正意义上的继承,也不能从一个父类extends,要实现它的继承可以通过其他方式来实现: 步骤:1.继承父类的属性 2.继承父类的原型 下面就以一个拖拽为例子 ...
- java--偏向锁
Java偏向锁(Biased Locking)是Java 6引入的一项多线程优化.它通过消除资源无竞争情况下的同步原语,进一步提高了程序的运行性能. 轻量级锁也是一种多线程优化,它与偏向锁的区别在于, ...
- POJ 1159 回文LCS滚动数组优化
详细解题报告可以看这个PPT 这题如果是直接开int 5000 * 5000 的空间肯定会MLE,优化方法是采用滚动数组. 原LCS转移方程 : dp[i][j] = dp[i - 1][j] + ...
- 测试css2.1选择器IE6/7/8支持情况,属性选择器/子元素/相邻
环境 xp ie 8 , ietester <!doctype html> <html> <head> <meta charset="utf-8&q ...
- 设计模式(九)外观模式Facade(结构型)
设计模式(九)外观模式Facade(结构型) 1. 概述 外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性. ...
- Qt核心剖析: moc
前面我们说过,Qt 不是使用的“标准的” C++ 语言,而是对其进行了一定程度的“扩展”.这里我们从Qt新增加的关键字就可以看出来:signals.slots 或者 emit.所以有人会觉得 Qt 的 ...