opencvg编译
① mac下用什么环境编译opencv
. 安装
在OpenCV官网下载的安装包适用于linux/Mac,因此需要使用CMake工具来进行编译安装,尝试了几次,都在最后的链接那里失败了,在StackOverFlow查了下才发现,目前opencv只支持使用xcode6版本的编译链接器,我使用的是xcode7的,为了避免不必要地麻烦,就不采取编译安装方式了,去homebrew搜索一下,可以下载
现在执行"brew install opencv",等待即可安装完成,安装后路径是:/usr/local/opt/opencv3,我们可以设置一个OPENCV3_HOME环境变量,方便以后快速打开这个文件夹。该文件夹下有opencv的核心和扩展模块
在lib目录下是opencv的库,在include目录下包含了两个子目录:opencv和opencv2,opencv里面包含了opencv1.x的核心头文件,opencv2安装模块功能组织,包括核心模块、图像处理模块、2D功能模块、高层GUI图像用户界面模块、机器学习模块等。
2. 环境配置
开发平台IDE的环境大同小异,基本都是选择编程语言后就确定了编译器,然后是头文件路径的设定和库文件路径的设定让编译器能找到就行,然后就可以进行编译链接成最终的可执行文件了,按照这个思想,就不难处理问题了。
② linux 下 opencv程序怎么编译
运行了楼上给的命令之后,结果是这样的:
# g++ `pkg-config opencv --libs --cflags opencv` facedect.cpp -o facedect -static
/tmp/cc8XhRf6.o: In function `find_face(_IplImage*)':
facedect.cpp:(.text+0x51): undefined reference to `cvCreateImage'
facedect.cpp:(.text+0xc0): undefined reference to `cvCreateImage'
facedect.cpp:(.text+0xdd): undefined reference to `cvCvtColor'
facedect.cpp:(.text+0xf7): undefined reference to `cvResize'
facedect.cpp:(.text+0x109): undefined reference to `cvEqualizeHist'
facedect.cpp:(.text+0x116): undefined reference to `cvClearMemStorage'
facedect.cpp:(.text+0x188): undefined reference to `cvHaarDetectObjects'
facedect.cpp:(.text+0x1c6): undefined reference to `cvReleaseImage'
facedect.cpp:(.text+0x1d1): undefined reference to `cvReleaseImage'
/tmp/cc8XhRf6.o: In function `isperson(char const*)':
facedect.cpp:(.text+0x21e): undefined reference to `cvLoad'
facedect.cpp:(.text+0x22f): undefined reference to `cvCreateMemStorage'
facedect.cpp:(.text+0x25a): undefined reference to `cvLoadImage'
facedect.cpp:(.text+0x27d): undefined reference to `cvReleaseImage'
facedect.cpp:(.text+0x289): undefined reference to `cvDestroyWindow'
collect2: ld returned 1 exit status
③ 如何编译opencv
1. 将OpenCV2.2.0的压缩包解压到路径D:\OpenCV\opencv (以下所有路径都可自己选择 只要对应起来即可)
2. 安装Cmake,可以到官网去下载并按默认设置安装安装即可。
此处注意一般vs采用的是win32编译器进行debug和release(即使你是安装的x64),所以下载cmake的时候应该下载32位版本,这样cmake编译出来的是32位的工程文件,x64的cmake编译的是64位工程文件。
3.打开Cmake,在第一行“Where is the source code”后面的那个“Browse Source...”按钮,选择OpenCV的安装路径。
④ 如何编译 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 编译一次需要多久
首先介绍一下流程: 1.选图,两张图的重叠区域不能太小,我个人认为最少不少于15%,这样才能保证有足够的角点匹配。
2.角点检测。这一步OpenCV提供了很多种方法,譬如Harris角点检测,而监测出的角点用CvSeq存储,这是一个双向链表。
3.角点提纯。在提纯的时候,需要使用RANSAC提纯。OpenCV自带了一个函数,FindHomography,不但可以提纯,还可以计算出3x3的转换矩阵。这个转换矩阵十分重要。
4.角点匹配。经过提纯后的角点,则需要匹配。
5.图像变换。这一步我曾经尝试过很多办法,最后选择了FindHomography输出的变换矩阵,这是一个透视变换矩阵。经过这个透视变换后的图像,可以直接拿来做拼接。
6.图象拼接。完成上面步骤之后,其实这一步很容易。
7.球面变换。这一步需要对坐标系进行转换,从平面坐标到球面坐标。
⑥ cmake编译opencv程序的时候怎么静态编译
使用opencv需要编译源码,得到库文件。可以用cmake构建项目后编译,也可以直接用官方提供的编译好的版本。 官方提供的编译库一般只是标准版本,没有附加某些库,比如tbb等,要想让opencv使用tbb等库,就只能自己构建项目后编译。
⑦ 为什么编译opencv超过10个gb
编译opencv超过10个gb的原因如下
配置选项,能帮助编译者确定哪些功能模块需要编译,哪些不需要编译,同时能控制整个编译文件的大小,如果默认配置选项的话,编译文件可能会超过10G。
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
⑧ opencv如何编译能支持单片机
可根据如下操作实现。
首先在VS中用C++写一个串口能信的子程序放到OPENCV的程序中,再写一个单片机的串口通信程序,最后连接运行即可。
⑨ 如何重新编译opencv python
GCC 5.4.0
CMAKE 3.5.1
OpenCV 3.1.0
Android SDK API 23(Android 6.0)
Androird NDK r12b(12.1.2977051)
Python 2.7.12
当然在编译过程中还会用到很多其他工具和软件包,比如Ninja,Ant等,我会在文中需要的时候给出它们的版本和安装方法。
关于GCC,CMAKE和Python的安装过程本文就不详述了,一是因为这些工具的安装过程很容易,网络上的介绍都很详细,二是因为之前刚刚配置好TensorFlow,安装了一大堆软件包,我也不清楚本文的内容究竟会涉及哪些依赖库,我会尽量把我在编译过程中所需的工具和库标记出来。