导航:首页 > 源码编译 > 如何自行编译opencv源码

如何自行编译opencv源码

发布时间:2023-02-22 09:02:58

① opencv指定模块编译精简dll大小

         opencv 官方提供有编译好的dll,但太大了,本来就用图片加载功能竟然要携带一个很大的dll很不值得,这时就需要到自己编译了。

我们使用工具cmake gui打开要编译的opencv源码,然后勾选掉不要的模块,进行编译就搞定。

如图,我只用到几个模块opencv_core,opencv_imgproc,opencv_highgui。

name 为BUILD_开头的就是编译模块了,使用那个模块就勾选那个模块。

② 如何修改opencv源码,生成自己的.dll .o .lib 和.h

晕。。。网上一大堆。。。我文库里面也有,以前用过,你可以看看

③ 如何编译 opencv动态链接库

在一个项目中需要用到OpenCV,刚开始使用了OpenCV的动态链接库,这样,在移动可执行程序时还必须将OpenCV动态支持库一起搬移,很是麻烦。所以,最终选择OpenCV静态链接库,这样程序移植运行就方便了很多。

需要编译成静态库以便于应用程序链接。

网上有的教程中写的在VC++2010下安装OpenCV2.1时用到了TBB库,而我在编译链接自己的程序后需要用到TBB.dll。本人设计的目的就是要做一个独立的界面程序,不需要携带其他第三方库。经过一段时间的努力最终找到了编译OpenCV2.1静态库的方法。

需要的工具环境及文件:

-------------------------------------------------------------------------------------------------------------

1、Windows XP

2、VC++2010(VS2010)

3、为编译OpenCV源码包(我下载的有:OpenCV2.1.0,OpenCV2.3.0及OpenCV2.4.4)

4、CMake2.8.9

说明:OpenCV各版本官方下载地址:opencv.org/

cmake-2.8.9下载地址:ishare.iask.sina.com.cn/download/explain.php?fileid=35025936

--------------------------------------------------------------------------------------------------------------

以OpenCV2.1.0编译静态库为例

CMake配置

-------------------------------------------------------------------------------------------------------------

打开CMake并设置:

Where is the rource code :OpenCV源代码所在的文件夹

Where to build the binaries:CMake配置好得到的文件放在位置(我的:E:\OpenCV2.1.0-prj)

然后点击configure,选择"Visual Studio 10"。然后确定。

等待configure完成,会出现很多红色的选项,因为主要是生成OpenCV的库,所以只需保留某些选项:

去掉BUILD_NEW_PYTHON_SUPPORT,BUILD_SHARED_LIBS, BUILD_TESTS

勾选OPENCV_BUILD_3RDPARTY_LIBS, WITH_TBB,WITH_JASPER, WITH_JPEG,
WITH_PNG, WITH_TIFF选项,

然后再点击configure,如下图:

提示TBB_INCLUDE_DIR找不到,因为我们不需要TBB库,所以忽略,再一次点击configure。

等待配置完成,最后点击generate,完成后关闭CMake。

-------------------------------------------------------------------------------------------------------------

VC++2010编译静态库

-------------------------------------------------------------------------------------------------------------
进入E:\OpenCV2.1.0-prj目录,使用VC++2010打开.sln文件,打开项目管理器

这时候会看到

解决方案中有很多小项目存在。

注:这时我们右键任意点击一个子项目(如cv),选择属性,可以在配置属性下的常规项目中看到,配置类型为
静态库(lib)。

按住ctrl键,选中除过ALL_BUILD, INSTALL, ZERO_CHECK,
uninstall四个项目的其他所有项目,在菜单中选择项目->属性,打开配置属性->c/c++->代码生成选项,在右侧窗口中的运行时库中选择多线程调试(/MTd),然后确认。

说明:这里有四个选项(/MT, /MTd, /MD,
/MDd),前两个一组,为静态链接运行时库,运行时不需要运行时库的支持,代码直接插入到程序中去;后两个一组,为动态链接运行时库,运行时需要msvcr90.dll或msvcp90.dll支持。

我们先编译Debug版的OpenCV静态库,在解决方案"opencv"(22个项目)上单击右键,选择重新生成解决方案,此时便开始编译OpenCV库了,等编译结束会提示完成16个,失败4个:

这四个项目生成的是exe程序,不需要管他们。到这步我们已经生成了Debug版本的静态库!

然后我们用相同的方式生成Release版的库,在之前的基础上只需要将选项选择多线程/MT,再进行编译。编译时警告很多,直接忽略!

注意:/MT即是Release版本,/MTD即是Debug版本。

最终我们需要的静态库就存在:E:\OpenCV2.1.0-prj/lib 和 E:\OpenCV2.1.0-prj/3rdparty/lib
两个目录,我们编译好的库就在这两个文件夹下。分别

将E:\OpenCV2.1.0-prj/3rdparty/lib中Debug
下面的所有文件Copy到E:\OpenCV2.1.0-prj/lib中的Debug 文件中。

将E:\OpenCV2.1.0-prj/3rdparty/lib中Release下面的所有文件Copy到E:\OpenCV2.1.0-prj/lib中的Release文件中。

④ OpenCV静态库编译与链接

以OpenCV-4.0.0为例说明在Ubuntu环境下的静态库编译与链接方法:

opencv依赖第三方的库,所以当把opencv编译成静态库的时候,注意要把它运行时必要的依赖库也编译进来,opencv源码内有自己的3rdparty,主要有:libjpeg、libpng、libtiff、libzlib、libwebp、libprotobuf、ffmpeg(用到video时编译)、libgtk(用于显示界面显示,服务器部署不会用到),可以通过cmake -LA来查看配置的编译信息,再根据信息考虑把opencv的哪些mole编译进来。

链接时指定opencv的静态库以及依赖的库。另外需要注意头文件的问题,通过CMakeLists把opencv加入项目编译时,由于opencv编译完成后要install才会把所用的头文件集中拷贝到一个地方,所以事先将头文件拷贝到了项目的opencv目录下。

⑤ 怎么查看opencv源代码呢

1、找到Opencv的安装目录,例如安装目录在F盘,找到相应的安装目录如下所示

阅读全文

与如何自行编译opencv源码相关的资料

热点内容
我的世界模组怎么获得命令方块 浏览:754
服务器为什么稳定 浏览:950
资源共享库源码 浏览:817
vr一体机能用什么app 浏览:166
程序员右背很痛 浏览:739
哪个app可以看琉璃原着 浏览:47
捣练图pdf 浏览:284
公司内部如何搭建网络服务器 浏览:654
自助火锅哪个app好 浏览:848
pdf使用说明 浏览:709
蝙蝠app的服务器在哪个国家 浏览:581
我的世界怎么做出超平坦服务器 浏览:329
qq内的照片加密 浏览:120
抵押车app哪个好 浏览:329
如何用单片机控制伺服电机 浏览:271
手指计算法视频 浏览:772
java键盘全局监听 浏览:682
华为交换机退出命令 浏览:852
神龙云服务器相关上市公司 浏览:366
加主播解压什么意思 浏览:890