zoukankan      html  css  js  c++  java
  • CMake生成OpenCV解决方案&&编译OpenCV源码

    生成OpenCV工程需要用到CMake,所以第一步需要下载CMake软件,下载链接:CMake下载

    目前最新的版本是3.7.1,这里选择下载Platform下的Windows win32-x86 ZIP,大小21M:



    把下载完成的压缩包解压出来就可以了,不用安装。打开解压后的路径下…cmake-3.7.1-win32-x86incmake-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:SoftwareMyOpenCV 下:



    双击打开工程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函数源码的修改起作用了:



  • 相关阅读:
    spark 读取mongodb失败,报executor time out 和GC overhead limit exceeded 异常
    在zepplin 使用spark sql 查询mongodb的数据
    Unable to query from Mongodb from Zeppelin using spark
    spark 与zepplin 版本兼容
    kafka 新旧消费者的区别
    kafka 新生产者发送消息流程
    spark ui acl 不生效的问题分析
    python中if __name__ == '__main__': 的解析
    深入C++的new
    NSSplitView
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9411883.html
Copyright © 2011-2022 走看看