CvIPL definition

CvIPL definition

本文关键字:definition CvIPL      更新时间:2023-10-16

我正在做一个项目,我不能使用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的类型…或者我在哪里可以找到它们的定义?

如果你还需要这个,这里是答案:

我正在使用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写的。