opencv库安装
方法1:
sudo apt-get install libopencv-dev(编译好的二进制库和头文件)
安装位置:
头文件:/usr/local/include/opencv2/
库文件:/usr/local/lib/
方法2:
官网直接下载源码,编译安装:https://opencv.org/releases/page/3/,如下载3.4.6-Sources;
*.zip
文件解压指令:unzip
*.tar.gz
文件解压指令:tar -xzvf
解压成功得到opencv-3.4.6文件夹,cd opencv-3.4.6,mkdir build,cd build,cmake …
此时还没结束,还需要make
!!否则在使用时会报错:
CMake Error at CMakeLists.txt:3 (find_package):
By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "OpenCV", but
CMake did not find one.
Could not find a package configuration file provided by "OpenCV" with any
of the following names:
OpenCVConfig.cmake
opencv-config.cmake
此时生成文件在build文件夹里面,但编译还没有结束!!还需要sudo make install
!!,该功能有点类似将build下面的库和头文件安装到/usr/local/lilb和/usr/local/include下面。
测试demo有个注意事项:
–CMakeLists.txt
–main.cpp
–1.bmp
–build
----opencv_demo
注意,在新建build, cmake…,make后,生成的opencv_demo要拿到外面来,因为main.cpp中写的cv::imread("./1.bmp")的图片是相对路径,若不想拿到外面来只需将其换成绝对路径。
bug:
此时无法用cv::imshow
zzz@ubuntu:~/zzz/sl/mine/ch5_opencv/build$ ./opencv_demo
terminate called after throwing an instance of ‘cv::Exception’
what(): OpenCV(3.4.6) /home/zzz/zzz/software/opencv-3.4.6/modules/highgui/src/window.cpp:634: error: (-2: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 function ‘cvShowImage’
解决办法:
apt-get install libgtk2.0-dev pkg-config
安装成功之后,重新使用cmake对opencv源码进行编译,安装。
CMakeLists.txt demo:
cmake_minimum_required( VERSION 2.8)
project(opencv_demo)
find_package( OpenCV REQUIRED )
# 如果有多个版本,需要指定以下版本号。若只有一个,则不用加,如上面一句话
# find_package( OpenCV 3.4 REQUIRED )
# find_package( OpenCV 2.6 REQUIRED )
include_directories( ${
OpenCV_INCLUDE_DIRS} )
add_executable( opencv_demo main.cpp)
target_link_libraries( opencv_demo ${
OpenCV_LIBS})
补充:
(1)cmake工具安装:sudo apt-get install cmake
或者,安装包安装,下载地址:https://cmake.org/files/
(2)kdevelop安装:sudo apt-get install kdevelop