c++ - OpenCV 2.4.7 GPL 许可问题与 mser.cpp

标签 c++ opencv

我正在使用带有 C++ 的 openCV 2.4.7 来构建最终将分发的应用程序。据我了解,openCV 属于 BSD 开源许可证。

但是,我发现有一个名为 features2d 的包,其中有一个名为 MSER 的类,该类使用名为“chitab3”的表。该表摘自 GPL 下的一篇论文。这存在于 modules/features2d/src/mser.cpp 的源代码中,如下所示:

  • The color image algorithm is taken from: Maximally Stable Colour Regions for Recognition and Match;
  • it should be much slower than grey image method ( 3~4 times );
  • the chi_table.h file is taken directly from paper's source code which is distributed under GPL.

由于 MSER 类在 features2d 中可用,因此当 features2d.dll 被分发时,MSER 和最终的 chitab3 也是如此。

所有这些导致了以下问题:

  1. 防止使用 chitab3 的最佳做法是什么?我对 MSER 类没有用处,但需要 features2d.dll,因为它具有应用程序所需的其他模块。

  2. 如果 chitab3 在 GPL 下,即使 MSER、features2d 和 openCV 也应该在 GPL 下。为什么 openCV 在 BSD 下,尽管其中一个模块在 GPL 下?

最佳答案

您应该直接将此问题报告给 OpenCV team让他们意识到这一点。

对于您的应用程序,在将 MSER 移动到 non-free OpenCV 模块后,您可以从源代码重新编译 OpenCV,并在构建系统。然后,您发布的 dll 不包含您不能在您方便时使用的任何数据/代码。

关于c++ - OpenCV 2.4.7 GPL 许可问题与 mser.cpp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23052639/

相关文章:

c++ - 调试错误-R6025 纯虚函数调用(No virtual called)

c++ - 在一个 OpenCV 中显示不同的窗口

C++ Sprite 不显示 - 也没有错误

c++ - vtk c++ 从 contourfilter 更新轮廓

c++ - 用opencv获取帧视频

python - numpy 数组,类型错误 : cannot unpack non-iterable numpy. int64 对象

c++ - QImage内存不足

c++ - 从 CImage AtlImage 获取缓冲区数组

C++:从单个 std::stringstream 转换多个命令行参数

python - 如何使用 OpenCV 在 Plone 站点中显示网络摄像头捕获?