• 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
Personal tools