在网上能找到许多关于OpenCV移植Ubuntu系统的文章,但是许多文章并不一定适合自己,经常会出现各种错误,耽误大量时间。本人之前在OpenCV官网下载OpenCV压缩包时,按照网上各种教程操作,一直没成功,甚是郁闷。后来在这个网址里下载的OpenCV安装包却顺利安装上了,有点怀疑之前下载的安装包不能在Ubuntu下安装。网址:https://sourceforge.net/projects/opencvlibrary/files/
进入网站后选择opencv-unix,进入后选择自己想下载的安装包,我在这里选择了2.4.9版本。下载完成后,放在Ubuntu系统的临时文件夹里,如新建linux文件夹。将opencv-2.4.9.zip文件解压会出现opencv-2.4.9文件夹。
1,首先安装第三方库。进入root模式下,输入以下命令:
apt-get install build-essential
apt-get install cmake cmake-qt-gui
apt-get install libgtk2.0-dev
apt-get install libavcodec-dev libavformat-dev libswscale-dev
apt-get install libdc1394-22-dev
apt-get install libjpeg-dev libpng-dev libtiff-dev libjasper-dev
2,opencv-2.4.9.zip解压完成后产生opencv-2.4.9文件夹,输入命令cd opencv-2.4.9进入。
进入后输入命令:mkdir build 建立build文件夹。输入命令:cd build 进入build文件夹。进入build之后输入以下命令:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
3,opencv的安装配置。输入命令:ccmake ./
把WITH_1394,WITH_CUDA,WITH_FFMPEG设置为OFF,其他不变;按c键进行配置,g键产生Makefile。
完成之后输入命令:make进行编译,这部分时间很长。编译完成之后输入命令:make install 进行安装。安装完成之后可以在/usr/local/lib目录下看到OpenCV的链接库。
4,安装完成之后,opencv并不能使用,还需要配置系统变量。输入命令:gedit /etc/ld.so.conf.d/opencv.conf
在打开的空白窗口中输入:/usr/local/lib ,保存退出。退出后输入命令:sudo ldconfig。
输入命令:gedit /etc/bash.bashrc,在打开的窗口最下面输入:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存退出。
5,输入reboot重启系统,就可以测试opencv了。
6,接下来给出两个简单的测试程序,在随意位置新建test1文件夹,进入后输入命令:touch show.cpp,gedit show.cpp。
在新开的窗口中输入代码:
#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat img=imread("lena.jpg");
imshow("lena",img);
waitKey(5000);
}
g++ 'pkg-config opencv --cflags' show.cpp -o test 'pkg-config opencv --libs'
代码输入完成后,保存退出。在test1文件夹里放一张lena.jpg的图片。
退出后在test1目录下输入命令:g++ `pkg-config opencv --cflags` show.cpp -o test `pkg-config opencv --libs`
注意:命令中不是单引号'',而是``。
运行后产生test可执行文件,输入命令: ./test 即可看到输出图像。
7,使用opencv调用摄像头,可用如下代码,记得把摄像头挂载到虚拟机上。命令:touch video.cpp,gedit video.cpp。
#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{
VideoCapture capture(0);
while(1)
{
Mat frame;
capture>>frame;
imshow("Video",frame);
waitKey(30);
}
return 0;
}
保存退出后,输入命令:g++ `pkg-config opencv --cflags` video.cpp -o video `pkg-config opencv --libs`,产生可执行文件video。
如果没有在虚拟机上挂载摄像头,该程序运行后会报错。挂载摄像头之后,可能程序会执行,但是视频跑不起来,甚至在cheese里视频也跑不起来,这时在虚拟机的设置下找到硬件/USB控制器。点击USB控制器,在右边USB兼容性选择:USB3.0即可。重新运行虚拟机,重新运行可执行文件即可看到视频。
参考:https://blog.csdn.net/brilliantdo/article/details/51417798