我正在使用带有C ++的openCV 2.4.7来构建最终将被分发的应用程序。据我了解,openCV属于BSD开源许可证。
但是,我发现有一个名为features2d的包,它有一个名为MSER的类,它使用一个名为“chitab3”的表。该表摘自GPL下的论文。这存在于modules / features2d / src / mser.cpp的源代码中,如下所示:
- 彩色图像算法取自:用于识别和匹配的最大稳定颜色区域;
- 它应该比灰度图像方法慢很多(3~4次);
- chi_table.h文件直接取自纸质源代码,该源代码以GPL格式发布。
由于feature2d中有MSER类,因此当分发features2d.dll时,MSER也是如此,最终也是chitab3。
这一切导致了以下问题:
防止使用chitab3的最佳做法是什么?我没有使用MSER类,但需要features2d.dll,因为它有应用程序所需的其他模块。
如果chitab3在GPL下,即使是MSER,features2d和openCV也应该在GPL下。为什么openCV属于BSD,虽然其中一个模块属于GPL?
答案 0 :(得分:2)
您应该直接向OpenCV team报告此问题,以便让他们了解它。
对于您的应用程序,您可以在将MSER移至非免费 OpenCV模块后,从源代码重新编译 OpenCV,并明确禁用其中的非免费模块构建系统。然后,您发布的dll不包含任何无法在您方便时使用的数据/代码。