从windows转战Linux,又将电脑的opencv安装一遍,个人习惯,不管是系统还是软件都是安装最新版本,
$ sudo apt-get install build-essential
$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
该过程中可能存在有部分依赖库缺失或者无法安装,自行百度,我也遇到,其中第三行有个库比较难安装,具体原因请参看我上一篇博客;
注:许多情况是需要更新一下命令或更换源:
$ sudo apt-get update
$ sudo apt-get upgrade
(本人使用4.1.0,其他版本类似,但一定要对应否则,,,需要修改源码)
下载地址: https://github.com/opencv (下载图中的opencv与opencv_contrib,点击后都选择RELEASE版本,否则后果自负)
并将解压后的contrib文件复制到opencv主文件中,同时新建build文件夹用于编译,然后打开buind文件夹准备编译,这里选择cmake-gui版本进行编译,没有安装的提前进行安装,(个人喜好,偏重交互性可视化编译操作,而且不容易出错,特别是路径设置)
unzip opencv-4.1.0.zip
unzip opencv_contrib-4.1.0.zip
mkdir build
cd build
cmake-gui ..
然后会弹出CMake的图形化界面,在上方的两个路径里面,选择好代码所在文件夹的路径和要安装的路径,然后点击configure(其他一般默认设置,注意一下平台系统设置,图2)
第一次configure后需要变动,如图所示:
更改三处:
1、BUILD_opencv_word 打钩,
2、CMAKE_BUILD_TYPE 设置为RELEASE(若有则无需更改)
3、OPENCV_EXTRA_MODULES_PATH 设置为之前下载的contrib文件夹里的modules文件夹,
opencv_contrib文件夹中的modules文件夹,注意,不是只选中opencv_contrib文件夹就好了,需要选中里面的modules文件夹!
注:OPENCV_EXTRA_MODULES_PATH 是用来指定要编译的扩展模块,其中包括OpenCV_contrib模块。
然后等待configuring done后点击generate,结束后如下图所示,然后关闭camke-gui
make
sudo make install
这需要一段时间估计10几分钟(电脑配置一般),
然后看到100%就成功了!如果出现错误,重新来一遍,或者百度一下吧。
1、安装成功后还需要设置opencv的环境变量。打开文件:
sudo gedit /etc/ld.so.conf.d/opencv.conf
2、将以下内容添加到最后:
/usr/local/lib
3、接下来配置库:
sudo ldconfig
4、更改环境变量:
sudo gedit /etc/bash.bashrc
5、在文件后添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
6、保存退出,在运行下面的例程之前,需要重新开启终端来使配置生效。
到此,安装和配置的整个过程都完成了!
1、在终端运行命令:pkg-config --cflags --libs opencv 出现下面信息:
2、运行一个打开图片的程序
(1)在任意位置,新建一个文件夹project,然后在该文件夹下新建test文件夹用于该测试。
(2)创建DisplayImage.cpp文件,
touch创建cpp,然后输入gedit test.cpp 进行编辑,并输入以下代码,保存。
#include
#include
#include
#include
using namespace cv;
int main( int argc, char** argv )
{
Mat image;
image = imread( argv[1], 1 );
if( argc != 2 || !image.data )
{
printf( "No image data \n" );
return -1;
}
namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
imshow( "Display Image", image );
waitKey(0);
return 0;
}
(3) 然后在该文件夹下创建camkelists
gedit CMakeLists.txt
用CMake编译:添加一个CMakeLists.txt 文件,内容如下,保存
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
(4) 在test文件夹中右键,打开终端,执行以下命令,生成执行文件 DisplayImage。(这里cmake后面一个点就够了,表示在当前目录下执行cmake操作)
cmake .
make
(5)选择一张图片,复制到test文件夹中,并且重命名为test.jpg
(6)在终端运行以下代码
./DisplayImage test.jpg
运行结果: