0
点赞
收藏
分享

微信扫一扫

解决OpenCV在Ubuntu下安装和配置(阿里云ESCserver)及其错误


OpenCV

  • ​​安装准备​​
  • ​​安装cmake工具​​
  • ​​依赖环境(有点多)​​
  • ​​下载opencv​​
  • ​​安装​​
  • ​​解压文件​​
  • ​​cmake​​
  • ​​进行编译​​
  • ​​进行安装​​
  • ​​查看版本​​
  • ​​mang bugs​​
  • ​​/etc/bash.bashrc:11: command not found: shopt​​
  • ​​No package 'opencv' found​​
  • ​​Unable to init server: Could not connect: Connection refused​​


opencv在Ubuntu上安装,是一件极为痛苦的事情,下面来说明一下我的痛苦全过程。

安装准备

安装cmake工具

sudo apt-get install cmake

依赖环境(有点多)

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config

下载opencv

​​opencv下载地址​​

一般Ubuntu下我推荐直接下载source的zip压缩包,然后选择一个版本即可

安装

解压文件

前面下载的是zip压缩文件

unzip opencv-4.4.0.zip
# 没有下载unzip可以sudo apt-get install unzip

可以看到解压的是一个opencv-4.4.0,进行下面操作

cd opencv-4.4.0
mkdir build
cd ./build

cmake

sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

大概几分钟

进行编译

sudo make -j8   # 这是最好的安装效果,但是对电脑配置,内存等等要求高
sudo make -j4 # 退而求其次
sudo make # 最慢

安装时间极为缓慢,请耐心等待

进行安装

sudo make install

用gedit打开/etc/ld.so.conf
在文件中加上一行 /usr/loacal/lib
其中/user/loacal是opencv安装路径也就是makefile中指定的安装路

sudo gedit /etc/ld.so.conf
# 或者切换到root的vim /etc/ld.so.conf

sudo ldconfig,

修改bash.bashrc文件

sudo gedit /etc/bash.bashrc 
# 或者切换到root的vim /etc/bash.bashrc

文件尾加入

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

命令行输入

source /etc/bash.bashrc

查看版本

➜  ~ pkg-config --modversion opencv
4.4.0

安装完成

mang bugs

当然各种配置导致的bug是少不了的

/etc/bash.bashrc:11: command not found: shopt

比如在这一步:/etc/bash.bashrc:11: command not found: shopt

这主要是因为你的终端不是bash的原因

查看终端版本

echo $SHELL
/usr/bin/zsh

那就去.zshrc文件里面添加

vim .zshrc
# 添加如下
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

然后再

source .zshrc

运行无错误

No package ‘opencv’ found

当我们输入以下查看是否安装好的时候

pkg-config opencv --modversion

Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found

缺少opencv.pc文件???

我们来到

cd /usr/local/lib

创建文件夹并进入

sudo mkdir pkgconfig && cd pkgconfig

修改opencv.pc文件夹

prefix=/usr/local
exec_prefix=${prefix}
includedir=/usr/local/include
libdir=/usr/local/lib

Name: OpenCV
Description: Open Source Computer Vision Library
Version: 4.4.0
Libs: -L${exec_prefix}/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir}

保存文件

Unable to init server: Could not connect: Connection refused

当上面的保存文件的时候,可能出现无法保存的情况,这是因为在xshell好像在某种条件下不允许

Unable to init server: Could not connect: Connection refused

查阅了相关资料发现要切换用户

xhost+    # root
error:xhost: unable to open display "localhost:10.0"

又查阅了相关资料发现要用xhost+要按照xstart,在xshell里面就是xterm

sudo apt-get install xterm

该命令可查阅是否可以用xhost

/usr/bin/xterm -ls -display $DISPLAY

此时再来修改opencv.pc

vim opencv.pc

没有报错

最后来修改etc/bash.bashrc(一般情况下不用修改)

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

最后测试

➜  /etc pkg-config --modversion opencv
4.4.0


举报

相关推荐

0 条评论