CMake生成OpenCV解决方案&&编译OpenCV源码
来源:互联网 发布:arp攻击软件 编辑:程序博客网 时间:2024/04/29 23:56
生成OpenCV工程需要用到CMake,所以第一步需要下载CMake软件,下载链接:CMake下载
目前最新的版本是3.7.1,这里选择下载Platform下的Windows win32-x86 ZIP,大小21M:
把下载完成的压缩包解压出来就可以了,不用安装。打开解压后的路径下…\cmake-3.7.1-win32-x86\bin\cmake-gui.exe,会弹出如下CMake窗口:
接下来就可以安装步骤一步一步生成OpenCV工程了。
1. 点击右侧“Browse Source”按钮输入OpenCV源码所在路径:
2. 点击右侧“Browse Build”输入生成的OpenCV工程存放目录:
3. 点击左下角“Configure”按钮生成工程:
点击之后弹出如下对话框,CMake会自动选择本机已经安装的目标编译器,一般情况下默认即可,单击“Finish”:
如果不幸中招了,错选了本机没有的编译器,则会生成失败。要更改默认的目标编译器,点击CMake左上角的File->Delete Cache ,就会把之前选择的清除掉再重新选择。
如果选择的编译器没错,点击“Finish”后就会执行生成:
大概需要2分钟,生成完成:
4. 第一次“Configure”生成之后,还需要第二次执行生成,再次单击“Configure”按钮,执行第二次生成:
第二次生成完成:
5. 经过两次“Configure”之后,点击“Generate”按钮生成最终的OpenCv解决方案:
出现“Generate done”表示生成完成:
经过以上5个步骤之后就可以去刚才选择的OpenCV工程存放目录下查看生成的项目,我这里是在D:\Software\MyOpenCV 下:
双击打开工程OpenCV.sln,一共有71个项目,我们用的所有的OpenCV函数都是由这个工程生成的,可以在这些项目 里找到所有OpenCV函数的原始实现,按F5编译工程:
编译成功之后会在工程目录bin->Debug下生成很多个dll动态库文件。如果没对OpenCV工程源码修改的话,这些dll文件跟OpenCV自带的dll文件是一样的,如果要对指定的OpenCV函数进行优化或者功能上的剪切,在更改源码之后编译生成dll文件,再去调用这些dll文件就行了。
编译OpenCV源码
以最常见的imshow函数为例,找到opencv_highgui项目里的window.cpp文件里的imshow函数实现,在函数开头加一句话“2017新年快乐!”,并在控制台输出(需要加头文件iostream):
之后右键opencv_highgui项目->生成,把bin->Debug文件夹下的opencv_highgui2413d.dll替换掉之前OpenCV程序中的opencv_highgui2413d.dll文件。新建一个工程,测试一下imshow函数的效果:
#include <highgui/highgui.hpp>using namespace cv;int main(){Mat image = imread("Test.jpg");imshow("Test", image);waitKey();return 0;}
执行效果,在输出图片的同时,也在控制台输出了“2017新年快乐!”,说明对OpenCV函数源码的修改起作用了:
- CMake生成OpenCV解决方案&&编译OpenCV源码
- 生成opencv解决方案与opencv源码编译
- Cmake编译OpenCV源码
- 生成OpenCV工程解决方案与OpenCV源码编译
- 用Cmake编译Opencv源码,生成动态库
- 【OpenCV入门教程之七】 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译
- 【OpenCV入门教程之七】 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译
- 【OpenCV入门教程之七】 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译
- 【OpenCV入门教程之七】 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译
- 【OpenCV入门教程之七】 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译
- 【OpenCV入门教程之七】 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译
- OpenCV之七 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译
- 【OpenCV入门教程之七】 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译
- 【OpenCV入门教程之七】 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译
- 【OpenCV入门教程之七】 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译
- 【OpenCV入门教程之七】 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译
- 【OpenCV入门教程之七】 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译
- 【OpenCV入门教程之七】 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译
- TCP Keepalive解读
- HTML CSS
- PAT 乙级 1032. 挖掘机技术哪家强(20)
- E9V1版本uboot,内核 在ubuntu14.04 64位片机器上的编译
- Qt - QDialog,QWidget实现模态及非模态
- CMake生成OpenCV解决方案&&编译OpenCV源码
- iOS 工作之余小总结之(六)(1) --四种界面反向传值的方式:属性传值,回调方法传值,委托(代理)传值,block传值
- urllib2.HTTPError: HTTP Error 403: Forbidden
- java字节流
- 关于Python2.0版本与3.0版本中类的区别
- 怎么在linux中安装adobe flash player
- PopupWindow使用
- QT 为按钮添加事件
- Web开发实用网站资源