安装opencv通用版参考博客
安装过程中遇到一些问题,总结如下:
1.执行:sudo apt-get install libpng12-dev
遇到问题:Package 'libpng12-dev' has no installation candidate
改为:sudo apt-get install libpng-dev
2.执行:sudo apt-get install libjasper-dev
遇到问题:Unable to locate package libjasper-dev
执行下面语句成功解决问题:
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main`
sudo apt update
sudo apt install libjasper1 libjasper-dev
其中libjasper1是libjasper-dev的依赖包
3.执行:sudo make
遇到问题:../../lib/libopencv_imgcodecs.so.3.4.2: undefined reference to TIFFWriteScanline@LIBTIFF_4.0
将Cmake编译配置cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
改为:cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D BUILD_TIFF=ON ..
即最后加了一句-D BUILD_TIFF=ON
修改之后便可以顺利安装opencv通用版
opencv配置好以后,下面讲一下怎么编译opencv程序。
这是一段简单的opencv程序代码,在Linux终端怎么运行呢?
//testOpencv.cpp
#include
#include
using namespace std;
using namespace cv;
int main()
{
Mat srcImage = imread("lena.jpg");
imshow("源图像",srcImage);
waitKey(0);
return 0;
}
g++ hello.cpp -o hello
./hello
其中hello.cpp是要编译的cpp名称,生成的可执行文件是hello。
如果编译opencv程序,则需要将opencv的库包含进去,编译命令如下:
g++ testOpencv.cpp -o testOpencv `pkg-config --cflags --libs opencv`
其中,pkg-config是一个linux下的命令,用于获得某一个库/模块的所有编译相关的信息。
值得注意的是,一定要使用倒引号包含命令(什么是倒引号,好吧,就是键盘上波浪线那个键,按住shif输出~,不按Shift则输出倒引号),而不是单引号,否则编译出错。
生成可执行文件testOpencv,接下来运行它
./testOpencv
cmake_minimum_required(VERSION 2.8) // 这是对CMake工具最低版本要求
project(OpencvExample) //这是建立一个工程项目(类似于我们VS中建立C++项目一样),括号里面时工程名,工程名我们可以任意给,最后程序编译出来的可执行文件就是这个名字
find_package(OpenCV REQUIRED) //这是cmake用来查找opencv包用的
add_executable(OpencvExample testOpencv.cpp) //括号里面的两个参数分别是工程项目名和我们要编译文件名,如果有多个.h ,.cpp文件要编译,都写在这里,记住中间用空格键隔开
target_link_libraries(OpencvExample ${OpenCV_LIBS}) //这是我们链接到OpenCV库的环节
将所有的文件包括CMakeList.txt,自己编写的头文件,源文件等放入名子为OpencvExample的文件夹中,在终端进入到该文件下,然后输入以下命令:
cmake .
make
./OpencvExample
便可以的得到程序的运行结果。