• Open Source Computer Vision Library

BCB中使用OpenCV

Wikipedia,自由的百科全书

安裝和配置C++ Builder 6

(CB2009與此類似,但可能不支持中文路徑。)

一、全局設置

首先選擇File->Close All,關閉所有文檔。 菜單Tools->Environment Options打開對話框,選擇Library標簽頁(如下圖):先設置lib路徑,點擊Library path後面的…,在彈出視窗中再點…,選擇一個路徑後,點擊Add按鈕,加入路徑:C:\Program Files\OpenCV\lib。

Image:Open bcb1.JPG

二、項目設置

File->New->Application新建一個工程,保存至新文件夾。 Project->Options,打開下麵的視窗,選擇圖示標簽頁:Directory/conditions,點擊include path後面的…,彈出對話框,再點…,選擇路徑後添加。 在下方填入路徑: C:\Program Files\OpenCV\cxcore\include C:\Program Files\OpenCV\cv\include C:\Program Files\OpenCV\cvaux\include C:\Program Files\OpenCV\ml\include C:\Program Files\OpenCV\otherlibs\highgui C:\Program Files\OpenCV\otherlibs\cvcam\include

(路徑:C:\Program Files\OpenCV\lib加到這個地方估計也可以)

Image:Open bcb2.JPG


三、註意事項

每創建一個將要使用OpenCV的CB Project,都需要將下麵的lib拷貝到工程目錄下: cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib cvcam.lib

這些文件需要用coff2OMF.exe(coff2omf -lib:ms bin\cv.lib bcb\cv.lib)文件做格式轉換。 如果你不需要這麼多lib,你可以只添加你需要的lib。

實例代碼

  1. 目的:演示opencv代碼在cb環境下的使用。
  2. 步驟:
    1. 新建工程,一個空窗體,放一個button,添加click事件。需要一張圖片,名字為“fruits.jpg”。
    2. CvSize cvGetSize( IplImage *img)這個函數需要自己寫一下(代碼部分已經給出了),原版的會報錯。
  3. 代碼:
//---------------------------------------------------------------------------
#include <vcl.h>
//-------open cv macro begin-------------
#ifdef _CH_
#pragma package <opencv>
#endif
 
#include "cv.h"
#include "highgui.h"
#include <stdio.h>
#include <stdlib.h>
//-------open cv macro end-------------
 
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
IplImage * img0 = 0;
IplImage * img1 = 0;
IplImage * img2 = 0;
IplImage * img3 = 0;
IplImage * img4 = 0;
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
CvSize cvGetSize( IplImage *img)
{
 CvSize aa;
 aa.width=img->width;
 aa.height=img->height;
 return aa;
}
 
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    char* filename =(char*)"fruits.jpg";
 
    if( (img0 = cvLoadImage(filename,-1)) == 0 )
      return ;
 
 
    img1 = cvCloneImage( img0 );
 
    cvNamedWindow( "src_image", 1 );
    cvShowImage( "src_image", img0 );
 
}
//---------------------------------------------------------------------------

參考網頁和鏈接

  1. 影像處理簡易程式入門
  2. opencv 英文wiki中的 BCB教程
Views
個人工具