如何在Visual C++ 6.0上使用OpenCV(MFC)

 

 

 

 

 

如何在Visual C++ 6.0

使用OpenCV

 

 

王光一

東華大學 資訊工程研究所

電腦視覺實驗室


       

第一步     使用Visual C++讀入檔案  

第二步 使用OpenCV將影像讀入與顯示

 


第一步 如何使用Visual C++讀入檔案

      首先,請先開啟您的VC的程式。選擇開啟新專案(FileàNew),當視窗開啟後(1.1),選擇MFC AppWizard (exe)的選項。右邊請填上專案名稱(Project name,本範例名稱為step1)與檔案的位置(Locatio n)。完成後請選擇OK

1.1 New視窗

      進入下一個視窗後請選擇Dialog based的選項,之後請按Finish的按鈕,完成新增一個視窗的程式。

      進入到一個新的編輯程式(1.2)之後,請拉出一個按鈕(Button)出來,Button名稱為IDC_LOADIMG(1.3)

      請在按鈕上點滑鼠兩下(1.4),就會產生出一個函式。我們讀入影像的功能就寫在該函式中(1.5)


1.2 一個新的編輯介面

 

1.3 按鈕的屬性

1.4 按鈕點兩下看到該視窗按OK就會產生新的函式


1.5 產生新的函式

      我們在該函式中輸入以下程式來完成選擇檔案的動作。

void CStep1Dlg::OnLoadimg()

{

CFileDialog dlg(TRUE, _T("*.bmp"), "",

     OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_HIDEREADONLY,

     "image files (*.bmp; *.jpg) |*.bmp;*.jpg|

     AVI files (*.avi) |*.avi|All Files (*.*)|*.*||",NULL);

 

char title[]= {"Open Image"};

dlg.m_ofn.lpstrTitle= title;

 

if (dlg.DoModal() == IDOK) {

       CString path= dlg.GetPathName();  // contain the

                                         // selected filename

    }

}

程式1.1

此時您可以執行一下您的程式,點選讀入影像的按鈕之後就會開啟瀏覽視窗讓您選擇檔案。目前您可以讀的格式有.bmp.jpg.avi(1.6)

1.6 開啟檔案的視窗

 

第二步 使用OpenCV將影像讀入與顯示

      首先,使用OpenCV前有一些前處裡的動作必須先完成。動作步驟如下:

*        安裝好OpenCV的安裝檔。

*        VCProjectàSettings中,選擇C/C++的頁面。在Gategory選擇Preprocessor。請在Additional include directories中輸入以下位置:
C:/Program Files/OpenCV/cv/include
C:/Program Files/OpenCV/otherlibs/highgui

*        選擇Link的標籤,在Gategory中選擇Input。再來在Additional library path中輸入:
C:/Program Files/OpenCV/lib

*        最後,在GategoryàGeneral中請在Object/library modul輸入以下:
cv.lib highgui.lib

完成後請按OK

要檢查是否已完成include檔案的包含,請在VCTool àOption,開啟新視窗之後選擇Directories看看是否有出現之前輸入的路徑(1.7)



1.7 檢查是否有完成include檔案夾的連結

      完成載入之後,下一步開啟step1.h的標頭檔。請在檔案後面加入以下程式。

#if !defined IMAGEPROCESSOR

#define IMAGEPROCESSOR

 

#include <stdio.h>

#include <math.h>

#include <string.h>

#include "cv.h"      // include core library interface

#include "highgui.h" // include GUI library interface

 

class ImageProcessor {

 

    IplImage* img; // Declare IPL/OpenCV image pointer

 

  public:

   

    ImageProcessor(CString filename, bool display=true) {

   

      img = cvvLoadImage( filename ); // load image

 

      if (display) {

 

        // create a window

        cvvNamedWindow( "Original Image", 1 );

 

        // display the image on window

        cvvShowImage( "Original Image", img ); 

      }

    }

 

    ~ImageProcessor() {

 

      cvReleaseImage( &img );

    }

};

 

#endif

 

程式1.2

      其中我們要使用cvv開頭的函式,該函式隸屬於highgui.h中的成員。至於highgui.h中有什麼函式可以使用請參考附錄A

請在OnLoading()的按鈕函式中輸入:

ImageProcessor ip(path);

至於該程式位置請參考圖1.8


1.8

      執行一下您的程式,任意開啟圖片。其結果應該如圖1.9

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值