天天看點

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

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"

繼續閱讀