本文共 3880 字,大约阅读时间需要 12 分钟。
sudo apt-get install build-essential cmake pkg-config libgtk-3-devsudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-devsudo apt install libjpeg-dev libpng-dev libtiff-dev gfortran openexr libatlas-base-dev
在安装完
Anaconda
后,在编译安装OpenCV
时,遇到了libtiff.so libglib.so
等库的问题,目前没有找到好的方法,那就先编译安装完OpenCV
后,再安装Anaconda
Download link:
Download opencv-4.5.2.zip
unzip opencv-4.5.2.zipcd opencv-4.5.2mkdir buildcd buildcmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_GENERATE_PKGCONFIG=on ..makesudo make install
NOTE:
- 在opencv 4版本的
CMakeLists.txt
文件中,CMAKE_INSTALL_PREFIX
默认为/usr/local
,OPENCV_GENERATE_PKGCONFIG
默认为off
,如果不设置OPENCV_GENERATE_PKGCONFIG=on
,则在/usr/local/lib
中将找不到pkgconfig
文件夹- make 运行时间很长,需要耐心等待,如果运行break了,可重新运行make命令
Finished all command lines above, check that whether there is a file called opencv4.pc
.
经过上面的步骤后,在/usr/local/lib/pkgconfig
下生成了opencv4.pc
文件,这个文件很重要,里面记录了OpenCV头文件、库文件的路經。需要进行如下配置:
sudo gedit /etc/bash.bashrc# add path PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfigexport PKG_CONFIG_PATH# updatesudo updatedb
or
gedit /etc/profile# add pathPKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfigexport PKG_CONFIG_PATH# updatesource /etc/profile# 重启电脑reboot
/etc/ld.so.conf.d
一般为空文件,进行如下配置:
sudo gedit /etc/ld.so.conf.d/opencv.conf # add path/usr/local/lib# updatesudo ldconfig
NOTE:一切有关” cannot open shared object file: No such file or directory “的问题基本都可以通过上面的方式来解决(除非是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对)
pkg-config --modversion opencv4
如果摄像头正常,可以直接用opencv提供的样例测试:
cd opencv-4.5.2/samples/cpp/example_cmakemkdir buildcd buildcmake ..make./opencv_example
ps:没有摄像头时的效果如下
否则,在家目录下新建一个tmp
文件夹,在其中下载任意png格式图片,命名为1.png
.并在tmp
文件夹构建
test.cpp
CMakeLists.txt
#include#include using namespace std;using namespace cv;int main(void){Mat img = imread("~/tmp/1.png");if(img.data == nullptr){//nullptr是c++11新出现的空指针常量 cerr << "图片文件不存在" << endl; return 0;}else{ // cout << img << endl;//你会发现图片就是一个矩阵 imshow("1.png", img); waitKey(0);// 按任意键在0秒后退出窗口,不写这句话是不会显示出窗口的}return 0;}
最简单的方法是,从opencv-4.5.2
文件夹中直接复制一份过来稍作修改,复制的文件为opencv-4.5.2/samples/cpp/example_cmake/CMakeLists.txt
# cmake needs this linecmake_minimum_required(VERSION 3.1)# Enable C++11set(CMAKE_CXX_STANDARD 11)set(CMAKE_CXX_STANDARD_REQUIRED TRUE)# Define project nameproject(opencv_test_project)# Find OpenCV, you may need to set OpenCV_DIR variable# to the absolute path to the directory containing OpenCVConfig.cmake file# via the command line or GUIfind_package(OpenCV REQUIRED)# If the package has been found, several variables will# be set, you can find the full list with descriptions# in the OpenCVConfig.cmake file.# Print some message showing some of themmessage(STATUS "OpenCV library status:")message(STATUS " config: ${OpenCV_DIR}")message(STATUS " version: ${OpenCV_VERSION}")message(STATUS " libraries: ${OpenCV_LIBS}")message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")# Declare the executable target built from your sourcesadd_executable(opencv_test_project test.cpp)# Link your application with OpenCV librariestarget_link_libraries(opencv_test_project LINK_PRIVATE ${OpenCV_LIBS})
NOTE:cmake的知识可以参考:
在~/tmp
目录下
mkdir buildcd buildcmake ..make./opencv_test_project
进入opencv-4.5.2/build
目录:
pip3 install opencv-python
opencv-python
中只是包含了opencv
的主要模块,很多比较新的高级的算法、某些不免费的算法如sift
、surf
特征点算法没有包含进去,如果你想使用这些功能,需要卸载opencv-python
,然后安装opencv-contrib-python
pip3 install opencv-contrib-python
NOTE:都是自动安装最新版本
参考博客:
官网:
转载地址:http://gvxvi.baihongyu.com/