BCB中使用OpenCV
Wikipedia,自由的百科全书
20:25 2009年1月13日的修订版本 Ollydbg23 (Talk | 贡献) 实例代码 - 帮你编辑了一下,很简单的。 ← Previous diff |
23:42 2009年1月13日的修订版本 Ollydbg23 (Talk | 贡献) 参考网页和链接 - 添加一个i Next diff → |
||
第 102行: | 第 102行: | ||
==参考网页和链接== | ==参考网页和链接== | ||
- | [http://cslin.auto.fcu.edu.tw/sc3d/image/index.html 影像處理簡易程式入門] | + | #[http://cslin.auto.fcu.edu.tw/sc3d/image/index.html 影像處理簡易程式入門] |
+ | #[http://opencv.willowgarage.com/wiki/C%2B%2BBuilder opencv 英文wiki中的 BCB教程] |
23:42 2009年1月13日的修订版本
安装和配置C++ Builder 6
(CB2009与此类似,但可能不支持中文路径。)
一、全局设置
首先选择File->Close All,关闭所有文档。 菜单Tools->Environment Options打开对话框,选择Library标签页(如下图):先设置lib路径,点击Library path后面的…,在弹出窗口中再点…,选择一个路径后,点击Add按钮,加入路径:C:\Program Files\OpenCV\lib。
二、项目设置
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加到这个地方估计也可以)
三、注意事项
每创建一个将要使用OpenCV的CB Project,都需要将下面的lib拷贝到工程目录下: cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib cvcam.lib
这些文件需要用coff2OMF.exe(?)文件做格式转换。 如果你不需要这么多lib,你可以只添加你需要的lib。
实例代码
- 目的:演示opencv代码在cb环境下的使用。
- 步骤:
- 新建工程,一个空窗体,放一个button,添加click事件。需要一张图片,名字为“fruits.jpg”。
- CvSize cvGetSize( IplImage *img)这个函数需要自己写一下(代码部分已经给出了),原版的会报错。
- 代码:
//--------------------------------------------------------------------------- #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 ); } //---------------------------------------------------------------------------