为对zedboard--pc机的ubuntu安装Opencv(十七)的补充。
之前一直很郁闷,opencv安装成功后,虽然可以处理图像,但是没办法显示图像,报错
OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow, file /home/aborn/software/OpenCV-2.4.1/modules/highgui/src/window.cpp, line 598
terminate called after throwing an instance of 'cv::Exception'
what(): /home/aborn/software/OpenCV-2.4.1/modules/highgui/src/window.cpp:598: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvNamedWindow
若用opencv自带的函数进行显示,需要在linux下安装gtk等若干第三方库。
第一步:
sudo
apt-get
install
build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg62-dev libtiff4-dev libswscale-dev libjasper-dev cmake cmake-curses-gui
第二步:
tar -xvjf OpenCV-2.3.1.tar.bz2 这里的目录是/usr/Opencv2.3.1
第三步:
进入目录/usr/Opencv2.3.1,mkdir build,并且进入build目录,执行命令
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ../ 注意../一定不要丢了,因为他需要CMakeList.txt文件,在上一层目录下。/usr/local是安装目录。
第四步:
ls一下,可以看到build文件夹多了一些文件,执行
ccmake ./
这里要千万注意注意:
书上要把一些需要第三方支持的库设置位OFF,之前安装的一些就是第三方的库,疑问:??如果要显示图像WITH_GTK,关掉就算你按照了gtk的库也是没用的。
这次只把WITH_1394,WITH_CUDA,WITH_EIGEN,WITH_FFMPEG,其它都没变。
然后完成后,按下c键进行配置,在按下G来产生Makefile
第五步:
make
第六步
make install,安装完成后,可以在/usr/local/lib 目录下看看这些链接库,用file libopencv_calib3d.so.2.3.1 查看信息,得到如下信息:
file libopencv_calib3d.so.2.3.1
libopencv_calib3d.so.2.3.1: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamicallylinked,BuildID[sha1]=0xb0d34a38b76b0bbe88511635df3bde46c281bb56, not stripped
第七步:配置和测试
配置:
在pc机上运行opencv的话必须要配置,具体步骤如下:
vim /etc/ld.so.conf.d/opencv.conf
添加/usr/
local
/lib
,退出保存
ldconfig(必须在root权限下):
vim /etc/
bash
.bashrc
,在末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/
local
/lib/pkgconfig
export
PKG_CONFIG_PATH
保存,重启终端
测试:
cd /usr/OpenCV-2.3.1/samples/c
chmod +x build_all.sh
./build_all.sh
./facedetect baboon.jpg