将我自己的函数添加到 OpenCV

Posted

技术标签:

【中文标题】将我自己的函数添加到 OpenCV【英文标题】:Adding my own function to OpenCV 【发布时间】:2013-04-16 17:29:41 【问题描述】:

我需要向 OpenCV 2.4.4 添加一种计算连接组件的新方法,以便在我自己的一个项目中使用。我已经从this question 获得了函数的代码(感谢jason),我导航到the patch,在那里我找到了代码和标题。

我所做的是在C:\opencv\modules\imgproc\src 中添加一个新文件connectedcomponents.cpp,我在其中放置了这个新函数的代码。接下来,我去了C:\opencv\modules\imgproc\include\opencv2\imgproc,并将适当的导出标头添加到imgproc.hpp。最后,我使用 Visual Studio 2010 在 OpenCV 源代码中重建了 opencv_imgproc 项目。一切正常,并为我生成了 opencv_imgproc244.dllopencv_imgproc244.libopencv_imgproc244.exp 文件。

现在,我将这些文件(除了 .exp,我找不到它应该去哪里?)复制到我现有的 OpenCV 目录并替换旧文件。当我现在尝试构建自己的项目时,一切仍然正常,但我无法从这里访问新方法。我包括#include <opencv2/imgproc/imgproc.hpp>,从这里我可以访问文件中的所有其他方法,除了我想要的新方法。

一切都编译但方法未公开的事实使我认为还有一些其他文件我也应该更改,但是,由于缺乏经验,我不知道这个文件可能在哪里或什么.

额外信息: 我正在使用 Visual Studio 2010、OpenCV 2.4.4 并使用 CMake 2.8.10.2 构建 OpenCV 我知道有诸如cvBlobsLib 之类的库可以计算连接的组件,并且我已经在我的项目中成功地使用了这些库。但是,我想要一个更快、更新的解决方案(cvBlobsLib 仍然使用旧的 IplImage)。

【问题讨论】:

您能否添加详细教程,说明您如何使用 cmake 和 Visual Studio 2010 从源代码编译 OpenCV?或者至少分享一个对你有帮助的好参考。我的总是会出现一些错误。 您是否将您的函数/定义标记为 CV_EXPORTS ? @AbidRahmanK,我不想在这里讨论,但我的原始版本是前段时间,如果我能找到链接,我会粘贴它。 @berak,是的,我的做法与 .hpp 文件中的所有其他问题完全相同,我认为是 CV_EXPORTS_W,但我确实添加了它。 【参考方案1】:

所以今天早上用新的眼睛看问题后,我立即发现了我的错误。我最初所做的是在

中添加新函数的标头代码

C:\opencv\modules\imgproc\include\opencv2\imgproc\imgproc.hpp,

但我应该做的是将它也添加到

C:\opencv\build\include\opencv2\imgproc\imgproc.hpp,

因为这是任何使用 OpenCV 的项目都包含的文件。现在一切都按计划进行。

【讨论】:

以上是关于将我自己的函数添加到 OpenCV的主要内容,如果未能解决你的问题,请参考以下文章

如何将我自己的文化资源添加到 tfs 网络访问

将我自己的 C# 项目配置添加到 MSBuild / Visual Studio

如何将我自己的 XML 配置文件添加到 Windows 服务 C#

将我自己的头文件添加到 ATSAMA5D36 开发板库的代码中

使用python在opencv中创建自己的轮廓

opencv车牌识别