CvIPL定义

时间:2013-01-18 08:04:58

标签: c++ c opencv

我正在做一个我无法使用opencv库的项目。所以我试着查看源代码并根据需要修改和使用其中的一些。

但是我遇到了cvCreateData(..)函数的问题,当我进入函数时,他们使用'CvIPL'结构'CvIPL.allocateData'但是当我右键单击它并尝试去定义时,它说没有找到定义。

我用'CvIPL'谷歌,我在'array.cpp'中发现了这样的状态 -

static struct
{
    Cv_iplCreateImageHeader  createHeader;
    Cv_iplAllocateImageData  allocateData;
    Cv_iplDeallocate  deallocate;
    Cv_iplCreateROI  createROI;
    Cv_iplCloneImage  cloneImage;
}
CvIPL;

问题现在是我不知道什么是Cv_iplCreateImageHeader,Cv_iplAllocateImageData ...当我右键点击它们时找不到它们的任何定义。

任何人都可以告诉我Cv_iplCreateImageHeader的类型是什么,Cv_iplAllocateImageData ...或者我在哪里可以找到tehm的一些定义?

1 个答案:

答案 0 :(得分:1)

如果您仍然需要这个,请回答:

我正在使用MS Visual Studio 2005.右键单击并查找符号信息对我来说很好。但是当有疑问时(我经常是:),使用grep!使用cygwin,我跑了

cd ~/opencv
find . | xargs grep -l Cv_iplCreateImageHeader

列出的其中一个文件是./modules/core/include/opencv2/core/core_c.h,其中包含

typedef IplImage* (CV_STDCALL* Cv_iplCreateImageHeader)
                            (int,int,int,char*,char*,int,int,int,int,int,
                            IplROI*,IplImage*,void*,IplTileInfo*);
typedef void (CV_STDCALL* Cv_iplAllocateImageData)(IplImage*,int,int);
typedef void (CV_STDCALL* Cv_iplDeallocate)(IplImage*,int);
typedef IplROI* (CV_STDCALL* Cv_iplCreateROI)(int,int,int,int,int);
typedef IplImage* (CV_STDCALL* Cv_iplCloneImage)(const IplImage*);

基本上,CvIPL是一个抽象的虚拟类,createHeader,其他成员是类型Cv_iplCreateImageHeader等的虚函数。它就像C ++,但用C语言编写。