c++ - CvIPL 定义

标签 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 的一些定义?

最佳答案

如果您仍然需要这个,这里是答案:

我使用的是 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 编写。

关于c++ - CvIPL 定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14394716/

相关文章:

c++ - 如何在 C++ 的函数内部声明一个 extern C 函数?

php - 用于 php 的独立语法和解析器

c - 返回一个动态分配的数组? (C)

跨平台条件无限循环

python - 从 Realsense D435 到 X、Y 坐标的精确深度距离

c++ - Back_inserter 或 push_back

c++ - 有关保护 DLL 代码的任何提示?

c++ - 为什么在这种情况下编译动态库会出错呢?

python - Python OpenCV检测棋盘

c++ - 尝试在没有 opencv calcHist() 的情况下计算我自己的直方图