配了一天的OpenCV环境,终于能编译运行程序了,我的系统是Ubuntu 12.04LTS ,下载的OpenCV版本是目前最新的OpenCV 2.4.2
1、准备好源码,可以直接下载,也可以svn弄下来
要准备的东东就是上网下载个Linux版的OpenCV啦,zip格式的。解压到一个地方,我放到机子的地方是/home/star/apps/里面。
如今的目录状态是:/home/star(这是我的用户名啊,和你不一样)/apps(这是我习惯放程序的地方,神码pdf阅读器就是放这的)/OpenCV/(这里就好多OpenCV的文件,下面要在里面cmake的)
2、下载OpenCV所需要的依赖文件
sudo -sH 变成超人
然后狂apt-get install。。。。
具体install什么,就看下面的链接啦,如果是新手的话,建议全部都install啊。。不然就会有最低下的错误,而且弄了好久都不知到怎么回事。
http://opencv.willowgarage.com/wiki/InstallGuide%20%3A%20Debian
3、编译OpenCV
回到步骤1的那个OpenCV目录,新建一个叫release的文件夹,然后在里面cmake,具体也可参考上面的链接
cd ~/opencv # the directory containing INSTALL, CMakeLists.txt etc.
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_Python_SUPPORT=ON -D BUILD_EXAMPLES=ON ..
看到上面的cmake命令没有!!!搞定的话第一小步就完成了
然后就第二小步: make
这一步非常久啊。。。很久很久很久。。。。。。
然后就很轻松的: make install
4、小配置
这一步关乎你的程序能不能找到那些include,和lib。
大家可以参考这篇文章~~很后才找到的。。。为什么没有早点发现呢。。。走了好多冤枉路啊= =
http://www.samontab.com/web/2010/04/installing-opencv-2-1-in-ubuntu/
下面的是从这个链接copy的。。。人家图文并茂,都懒得翻译了。。怕翻译错了。。。
Now you have to configure the library. First, open the opencv.conf file with the following code:
1 | sudo gedit /etc/ld.so.conf.d/opencv.conf |
Add the following line at the end of the file(it may be an empty file, that is ok) and then save it:
1 | /usr/ local /lib |
Run the following code to configure the library:
1 | sudo ldconfig |
Now you have to open another file:
1 | sudo gedit /etc/ bash .bashrc |
Add these two lines at the end of the file and save it:
1 | PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/ local /lib/pkgconfig |
2 | export PKG_CONFIG_PATH |
Finally, open a new console, restart the computer or logout and then login again. OpenCV will not work correctly until you do this.
5、写程序!!!
在自己的工作目录里面,新建DisplayImage.cpp
然后从这个地方,copy一下源代码
http://docs.opencv.org/doc/tutorials/introduction/linux_gcc_cmake/linux_gcc_cmake.html
然后就编译了,编译的方法有三种:
1)直接gcc
2)用cmake建makefile然后make一下
3)IDE法,传说有个万能IDE叫eclipse。。。。
第一种,
g++ `pkg-config –cflags opencv` -o hello hello.cpp `pkg-config –libs opencv`
http://stackoverflow.com/questions/11532963/cant-compile-opencv-in-linux
给个链接出来,是要告诉你,libs要放在后面啊。。不然会出错滴~~
第二种,
建一个CMakeLists.txt的东西,输入下面的东西
project( DisplayImage )然后。。。还是看这篇文章。。。http://docs.opencv.org/doc/tutorials/introduction/linux_gcc_cmake/linux_gcc_cmake.html
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
cmake之后,就有个可执行文件,然后就能显示图片啦~~~(怎么又是Lena。。。。)
我遇到的问题:
没有编译错误,但运行程序的时候出现下面这个错误
OpenCV ERROR: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support)
意思是,你木有某些东西的支持,建议你安装什么libgtk2.0(这个忘了是什么),和pkg-config。
然后我就安装了libgtk神马的啊。然后运行了还不行。(请耐心看下去,最下面解决了~~)
有个GG说看这篇文章可以搞定http://mathiasirwans.blogspot.com/2007/07/my-experience-with-ubuntu-610-opencv-10.html
但是我看了还搞不定。。。
后来深思了出错提示,在安装了上面所说缺少的东西之后,重新cmake+make+make install后,终于搞定了~~~(因为make的过程很痛苦,所以我之前一直回避make。。这次证实我真错了。。。)