第三篇:使用镜像源装OpenCV
时间:10-02
整理:3721RD
点击:
之前使用vnc连接时,桌面显示的或是X-Window-Manager或是运行在图形化的Terminal,那么,若想使用已装好的Mate桌面,该怎么做呢?
可以这么做,直接在图形界面终端运行桌面的session;然而还有一种更好的办法,使用终端编辑home目录下的.vnc/xstartup,使用如下命令
vi ~/.vnc/xstartup
注释掉最后两行,添加mate-session &,文件内容修改后如下:
按照之前连接vnc,桌面显示如下:

接下来说说正题,安装opencv,有多种办法,但整体分为两大类,从镜像源里安装和自编译,自编译安装通用性好,尤其对于有一些生僻的架构,但,从镜像源里安装,是由一些人员编译完了,分类打包,好处是不需要编译就可以,与操作系统协调性好,但是缺点也比较多,例如,最新版往往不能及时提供,卸载麻烦等,总之有利有弊。
高通410c提供的alip版本内部已经提供了一些用于opencv程序运行的so库,但是为了开发,我们需要重新从源里索引一下,使用如下命令:
sudo apt update
源里提供的libopencv-dev,提供了opencv.pc,这是务必要装的,便于使用pkg-config;我从源里安装的opencv文件如下:
此下示例用法:
我们切换到vnc看看效果:

接下来我们使用eclipse,要使用eclipse,也有两种,源里和IBM提供源码编译,由于IBM只提供x86和x64的二进制, 使用如下命令就可以:
就可以了,接着在eclipse使用opencv,要想使用,则需要配置相关的参数,选择项目的属性,不是Eclipse里的Window下的属性,选择C/C++ Build->Settings,直接按下图配置就行:



编译前需要保存,否则会报错。
可以这么做,直接在图形界面终端运行桌面的session;然而还有一种更好的办法,使用终端编辑home目录下的.vnc/xstartup,使用如下命令
vi ~/.vnc/xstartup
注释掉最后两行,添加mate-session &,文件内容修改后如下:
- #!/bin/sh
- # Uncomment the following two lines for normal desktop:
- # unset SESSION_MANAGER
- # exec /etc/X11/xinit/xinitrc
- [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
- [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
- xsetroot -solid grey
- vncconfig -iconic &
- #x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
- #x-window-manager &
- mate-session &
按照之前连接vnc,桌面显示如下:

接下来说说正题,安装opencv,有多种办法,但整体分为两大类,从镜像源里安装和自编译,自编译安装通用性好,尤其对于有一些生僻的架构,但,从镜像源里安装,是由一些人员编译完了,分类打包,好处是不需要编译就可以,与操作系统协调性好,但是缺点也比较多,例如,最新版往往不能及时提供,卸载麻烦等,总之有利有弊。
高通410c提供的alip版本内部已经提供了一些用于opencv程序运行的so库,但是为了开发,我们需要重新从源里索引一下,使用如下命令:
sudo apt update
源里提供的libopencv-dev,提供了opencv.pc,这是务必要装的,便于使用pkg-config;我从源里安装的opencv文件如下:
- linaro@linaro-alip:~$ dpkg -l|grep opencv
- ii libopencv-calib3d-dev:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 development files for libopencv-calib3d
- ii libopencv-calib3d2.4:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 computer vision Camera Calibration library
- ii libopencv-contrib-dev:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 development files for libopencv-contrib
- ii libopencv-contrib2.4:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 computer vision contrib library
- ii libopencv-core-dev:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 development files for libopencv-core
- ii libopencv-core2.4:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 computer vision core library
- ii libopencv-dev 2.4.9.1+dfsg-1+deb8u1 arm64 development files for opencv
- ii libopencv-features2d-dev:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 development files for libopencv-features2d
- ii libopencv-features2d2.4:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 computer vision Feature Detection and Descriptor Extraction library
- ii libopencv-flann-dev:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 development files for libopencv-flann
- ii libopencv-flann2.4:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 computer vision Clustering and Search in Multi-Dimensional spaces library
- ii libopencv-gpu-dev:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 development files for libopencv-gpu2.4
- ii libopencv-gpu2.4:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 computer vision GPU library
- ii libopencv-highgui-dev:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 development files for libopencv-highgui
- ii libopencv-highgui2.4:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 computer vision High-level GUI and Media I/O library
- ii libopencv-imgproc-dev:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 development files for libopencv-imgproc
- ii libopencv-imgproc2.4:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 computer vision Image Processing library
- ii libopencv-legacy-dev:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 development files for libopencv-legacy
- ii libopencv-legacy2.4:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 computer vision legacy library
- ii libopencv-ml-dev:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 development files for libopencv-ml
- ii libopencv-ml2.4:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 computer vision Machine Learning library
- ii libopencv-objdetect-dev:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 development files for libopencv-objdetect
- ii libopencv-objdetect2.4:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 computer vision Object Detection library
- ii libopencv-ocl-dev:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 development files for libopencv-ocl2.4
- ii libopencv-ocl2.4:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 computer vision OpenCL support library
- ii libopencv-photo-dev:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 development files for libopencv-photo2.4
- ii libopencv-photo2.4:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 computer vision computational photography library
- ii libopencv-stitching-dev:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 development files for libopencv-stitching2.4
- ii libopencv-stitching2.4:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 computer vision image stitching library
- ii libopencv-superres-dev:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 development files for libopencv-superres2.4
- ii libopencv-superres2.4:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 computer vision Super Resolution library
- ii libopencv-ts-dev:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 development files for libopencv-ts2.4
- ii libopencv-ts2.4:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 computer vision ts library
- ii libopencv-video-dev:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 development files for libopencv-video
- ii libopencv-video2.4:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 computer vision Video analysis library
- ii libopencv-videostab-dev:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 development files for libopencv-videostab2.4
- ii libopencv-videostab2.4:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 computer vision video stabilization library
- ii libopencv2.4-java 2.4.9.1+dfsg-1+deb8u1 all Java bindings for the computer vision library
- ii libopencv2.4-jni 2.4.9.1+dfsg-1+deb8u1 arm64 Java jni library for the computer vision library
- ii opencv-data 2.4.9.1+dfsg-1+deb8u1 all development data for opencv
- ii opencv-doc 2.4.9.1+dfsg-1+deb8u1 all OpenCV documentation and examples
- linaro@linaro-alip:~$ dpkg -l|grep libcv
- ii libcv-dev:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 Translation package for libcv-dev
- ii libcv2.4 2.4.9.1+dfsg-1+deb8u1 all computer vision library - libcv* translation package
- ii libcvaux-dev:arm64 2.4.9.1+dfsg-1+deb8u1 arm64 Translation package for libcvaux-dev
此下示例用法:
- linaro@linaro-alip:~$ pkg-config --list-all |grep opencv
- opencv OpenCV - Open Source Computer Vision Library
- linaro@linaro-alip:~$ pkg-config --cflags opencv
- -I/usr/include/opencv
- linaro@linaro-alip:~$ pkg-config --libs opencv
- /usr/lib/aarch64-linux-gnu/libopencv_calib3d.so -lopencv_calib3d /usr/lib/aarch64-linux-gnu/libopencv_contrib.so -lopencv_contrib /usr/lib/aarch64-linux-gnu/libopencv_core.so -lopencv_core /usr/lib/aarch64-linux-gnu/libopencv_features2d.so -lopencv_features2d /usr/lib/aarch64-linux-gnu/libopencv_flann.so -lopencv_flann /usr/lib/aarch64-linux-gnu/libopencv_gpu.so -lopencv_gpu /usr/lib/aarch64-linux-gnu/libopencv_highgui.so -lopencv_highgui /usr/lib/aarch64-linux-gnu/libopencv_imgproc.so -lopencv_imgproc /usr/lib/aarch64-linux-gnu/libopencv_legacy.so -lopencv_legacy /usr/lib/aarch64-linux-gnu/libopencv_ml.so -lopencv_ml /usr/lib/aarch64-linux-gnu/libopencv_objdetect.so -lopencv_objdetect /usr/lib/aarch64-linux-gnu/libopencv_ocl.so -lopencv_ocl /usr/lib/aarch64-linux-gnu/libopencv_photo.so -lopencv_photo /usr/lib/aarch64-linux-gnu/libopencv_stitching.so -lopencv_stitching /usr/lib/aarch64-linux-gnu/libopencv_superres.so -lopencv_superres /usr/lib/aarch64-linux-gnu/libopencv_ts.so -lopencv_ts /usr/lib/aarch64-linux-gnu/libopencv_video.so -lopencv_video /usr/lib/aarch64-linux-gnu/libopencv_videostab.so -lopencv_videostab
- #include <stdio.h>
- #include <cv.h>
- #include <highgui.h>
- int main(void)
- {
- IplImage *img = cvLoadImage("baidu.png", 1);
- cvNamedWindow("Example", CV_WINDOW_AUTOSIZE);
- cvShowImage("Example", img);
- cvWaitKey(0);
- cvReleaseImage(&img);
- cvDestroyWindow("Example");
- return 0;
- }
- linaro@linaro-alip:~$ gcc -o main main.c `pkg-config --cflags --libs opencv`
- /usr/bin/ld: /tmp/ccbQ85Ps.o: undefined reference to symbol 'lrint@@GLIBC_2.17'
- //lib/aarch64-linux-gnu/libm.so.6: error adding symbols: DSO missing from command line
- collect2: error: ld returned 1 exit status
- linaro@linaro-alip:~$ gcc -o main main.c `pkg-config --cflags --libs opencv` -lm
- linaro@linaro-alip:~$
我们切换到vnc看看效果:

接下来我们使用eclipse,要使用eclipse,也有两种,源里和IBM提供源码编译,由于IBM只提供x86和x64的二进制, 使用如下命令就可以:
- sudo apt install eclipse-cdt
就可以了,接着在eclipse使用opencv,要想使用,则需要配置相关的参数,选择项目的属性,不是Eclipse里的Window下的属性,选择C/C++ Build->Settings,直接按下图配置就行:



编译前需要保存,否则会报错。
