Ubuntu安装opencv问题总结

290 阅读2分钟

本文是我在ubuntu22.10安装opencv3.4.10时所遇到的问题,记录一下

1. 无法定位软件包libjasper-dev

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"

该命令可以将新的软件包追加到/etc/apt/sources.list文件末尾,但是也有可能出现下面的问题

image-20230731223716895.png

这种情况下,可以通过下面解决:

sudo apt-key adv --keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
sudo apt-key adv --keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32

image.png

2. libavresample 不能找到

sudo aptitude install libavresample-dev并选择n第二种方案

image.png

3. linux/videodev.h not found

sudo apt-get install libv4l-dev
sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h

在这个错误下面也许还有 sys/videoio.h not found,但是在我百度过后大多数解决办法都不能用,而且这个错误没有影响到后面的编译,可以忽略。

4. No package 'gtk+-3.0' found

image.png

解决办法:

sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt install libgtk-3-dev

5. Could not find OpenBLAS

sudo apt-get install libopenblas-dev

6. Could not find OpenBLAS include...

image-20230801195636496.png

sudo apt install liblapacke-dev

# gedit ~/opencv/cmake/OpenCVFindOpenBLAS.cmake
# 46行 SET(Open_BLAS_INCLUDE_SEARCH_PATHS)下添加
/usr/include/x86_64-linux-gnu

...

# 58行 SET(Open_BLAS_LIB_SEARCH_PATHS)下添加
/usr/lib/x86_64-linux-gnu

7. Could not find JNI

下载jdk到ubuntu上并安装,然后在CMakeLists.txt里寻找Java,在里面添加下面内容

image.png

8. ‘int lapack_Cholesky(fptype*, size_t, int, fptype*, size_t, int, bool*)’:

image.png

解决方案:cmake -DWITH_LAPACK=OFF ..

9. error: ‘CODEC_ID_H264’ was not declared in this scope

image.png

解决方案:cmake -DWITH_FFMPEG=OFF ..

10. error:comparting the result of pointer a ddition '(src + ((sizetype)off))’and NULL[-Werrorsaddress]

image.png

这种大概都是gcc版本过高导致的,我在编译的时候gcc版本是12,而opencv的版本是3.4.10,需要把gcc的版本降低到4或5。

11. ### Connecting to raw.githubusercontent.com :443... failed: Connection refused.

这个问题多是ubuntu不能连上github导致的,百度后看到很多种解法:

  • 修改/etc/hosts,通过www.ipaddress.com/ 查询githubusercontent的ip 添加 185.199.108.133 raw.githubusercontent.com
  • 修改/etc/resolv.conf,添加nameserver 114.114.114.114等等

这些都不太可靠我个人觉得,最简单的还是上github上面把缺的软件包下载下来直接修改。查看CMakeDownloadLog.txt,日志上面会提供所需要的包以及路径

image.png

① 进入 GitHub - opencv/opencv_3rdparty: OpenCV - 3rdparty 选择对应的

image.png

② 进入支路

image.png

③ 选择对应的包

image.png

④ 下载后把其路径修改到对应的文件中,我的在ippicv.cmake

image.png

image.png

保存后重新cmake即可。

装了好几天,遇到了各种各样的问题,最重要的是在安装前记得快照一下前面的虚拟机,不然出问题就要全部重来了😭