OPenCv 版权能供给学术和研究使用。然而OpenCV强大的视觉处理功能,在某些应用中可以省去很多开发时间,具有很大的吸引力。如果需要把他用在某些应用中,我们可以根据源代码修改动态链接库的名字,可以很难察觉是否使用过OPencv库。
以OpenCv的核心动态库opencv_highgui246.dll,opencv_imgproc246.dll,opencv_core246.dll为例子,修改成我们的目标库,如图所示
为实现这一个目标,我们进行如下操作:
1, 下载OPENCV,编译其源代码,得到VS2008版本的VC源代码,当然根据需要可以得到其他VS版本的源代码。具体如何编译这里不再叙述,自行查找方法编译。最终得到的结VC代码果如下
2, 打开OpenCv工程,找到modules和3rdpatrty
假定我们需要修改Opencv_core246d.dll的名称,我们选择modules的Opencv_core,右键属性,得到如下图
找到linker 连接器的General 和advanced这两个选项,他们分别可以修改输出的dll名字和lib名字
将D:\Template\CV_VS2008\bin\Debug\opencv_core246d.dll修改成D:\My\M1d.dll,即可在d盘的my文件夹得到M1d.dll, 其实他就是opencv_core246d.dll。
将D:\Template\CV_VS2008\lib\Debug\opencv_core246d.lib修改成D:\My\M1d.lib,即可在d盘的my文件夹得到M1d.lib, 其实他就是opencv_core246d.lib。
重新编译该模块,即可得到。如此,如果我们就用M1d.dll 和M1d.lib 代替OPencv自己的动态连接库的名字。
在工程中,如果改了名字编译一个模块,需要其他库要用该改名字的dll库时,应该先修改Opencv的引入名,然后编译。如图所示。
按照上述步骤,一步一步编译每个模块,最终可以得到我们自己想要的动态连接库名字,在其他工程中引用时,用新的动态连接库名字即可。
这是原创,转载请注明