我正在使用带有 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 也是如此。
所有这些导致了以下问题:
防止使用 chitab3 的最佳做法是什么?我对 MSER 类没有用处,但需要 features2d.dll,因为它具有应用程序所需的其他模块。
如果 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/