0


ubuntu20.04安装opencv4库

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

ubuntu20.04安装opencv4库

一、安装步骤

1.下载源码并解压

opencv官方网站:https://opencv.org/releases/

2.进入刚刚下载回来的源码包

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_GENERATE_PKGCONFIG=YES ..
make -j4
sudo make install

3.配置环境变量

终端输入:

sudo gedit ~/.bashrc

在最下面添加:

exportCPLUS_INCLUDE_PATH="/usr/include/opencv4:$CPLUS_INCLUDE_PATH"exportLIBRARY_PATH="/usr/local/lib:$LIBRARY_PATH"

若显示如下,则成功安装。
在这里插入图片描述

4.验证

上述步骤运行无误后,基本完成了

opencv 4

的安装,接下来使用以下命令验证:

pkg-config --modversion opencv4

二、编译中出现的错误

(1)AssertionError: Apache Ant报错

问题解析: 未安装apache ant
解决步骤:

安装Java

首先,安装Java JDK,在终端中输入以下命令:

sudoapt-get update
sudoapt-getinstall openjdk-8-jdk

下载安装Apache Ant

1.访问Apache Ant官网下载页面https://ant.apache.org/bindownload.cgi
2.移动解压后的文件到/usr/local目录下:
bashcd ~
tar-zxvf apache-ant-1.9.16-bin.tar.gz
sudomv apache-ant-1.9.16 /usr/local/
3.配置环境变量:
sudo gedit ~/.bashrc

在bashrc文件里写入:

exportANT_HOME=/usr/local/apache-ant-1.9.16
exportPATH=${PATH}:${ANT_HOME}/bin
4.验证安装:
bash
ant -version

如果出现以下类似信息,即表明安装成功:

Apache Ant(TM) version 1.9.16 compiled on July 102021

(2)python文件的AssertionError

[6%] Generate files for Java bindings
Traceback (most recent call last):
  File "/home/gu/文档/opencv-4.5.0/modules/java/generator/../generator/gen_java.py", line 1093, in<module>
    copy_java_files(java_files_dir, target_path)
  File "/home/gu/文档/opencv-4.5.0/modules/java/generator/../generator/gen_java.py", line 1032, in copy_java_files
    src = checkFileRemap(java_file)
  File "/home/gu/文档/opencv-4.5.0/modules/java/generator/../generator/gen_java.py", line 31, in checkFileRemap
    assert path[-3:]!='.in', path
AssertionError: /home/darkchii/下载/opencv-3.4.1/modules/java/generator/src/java/org/opencv/osgi/OpenCVNativeLoader.java.in
make[2]: *** [CMakeFiles/dephelper/gen_opencv_java_source] 错误 1
make[1]: *** [modules/java_bindings_generator/CMakeFiles/gen_opencv_java_source.dir/all] 错误 2
make: *** [all] 错误 2

查看错误信息,发现错误出现在gen_java.py文件处,解决办法:
将gen_java.py源文件中的31行:

assert path[-3:]!='.in', path

修改为:

assert path[-4:]!='.in', path

即可,然后重新make,在同样文件里出现了编码错误:

[7%] Generate files for Java bindings
JAVA: Processing OpenCV modules: 12
duplicated: CLASS cv::.Algorithm : 
SKIP:void read(FileNode fn)     due to ARG typeFileNode/I
SKIP:void write(Ptr_FileStorage fs, String name = String())     due to ARG typePtr_FileStorage/I
Traceback (most recent call last):
  File "/home/gu/文档/opencv-4.5.0/modules/java/generator/../generator/gen_java.py", line 1164, in<module>
    generator.gen(srcfiles, module, dstdir, jni_path, java_path, common_headers)
  File "/home/gu/文档/opencv-4.5.0/modules/java/generator/../generator/gen_java.py", line 492, in gen
    self.save(cpp_file, T_CPP_MODULE.substitute(m = module, M = module.upper(), code = moduleCppCode.getvalue(), includes ="
".join(includes)))
  File "/home/gu/文档/opencv-4.5.0/modules/java/generator/../generator/gen_java.py", line 514, in save
    f.write(buf)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 215-216: ordinal not in range(128)
make[2]: *** [CMakeFiles/dephelper/gen_opencv_java_source] 错误 1
make[1]: *** [modules/java_bindings_generator/CMakeFiles/gen_opencv_java_source.dir/all] 错误 2
make: *** [all] 错误 2

1.修改源文件:

将gen_java.py文件的514行

f.write(buf)

修改为:

f.write(buf.encode("utf-8").decode('utf-8'))

2.检查python版本:

确保正在使用Python3运行该脚本,可以在终端下运行以下命令:

python --version
python3 --version

如果有Python 2 和Python 3,确保使用

python 3

运行脚本。

非必要)若存在Python 2.7,需要进行卸载
1.检查系统中的Python版本

首先,检查是否已安装

Python 2.7

,并检查版本号。

python --version
2.卸载Python 2.7
sudoapt-get remove python2.7
sudoapt-get autoremove
3.验证Python已成功卸载

为了确认

Python 2.7

已被成功卸载,我们需要再次运行Python版本的命令。

python --version
4.卸载Python 2.7的备份文件

在卸载过程中,有些Python 2.7的备份文件可能还残留在系统中。为了彻底卸载

Python 2.7

,我们需要在文件系统中搜索并删除它们。

sudofind / -name python2.7

这条命令将会搜索系统中所有以

python2.7

命名的文件。一旦找到了它,可以使用以下命令删除它:

sudorm-rf /path/to/file_or_directory

请将

/path/to/file_or_directory

替换为上述find命令找到的文件路径。

清理残余文件和目录

现在,我们已经从系统中成功地卸载了

Python 2.7

。但还剩下一些残留文件和目录需要清理。以下命令可以帮助您完成此项任务:

sudo updatedb
sudolocate-b'\.pyc'|xargssudormsudorm-rf /usr/lib/python2.7/
sudorm-rf /usr/include/python2.7/
sudorm-rf /usr/share/python-wheels/
sudorm-rf /usr/local/lib/python2.7/
sudorm-rf /usr/local/include/python2.7/
sudorm-rf /usr/local/bin/easy_install*
sudorm-rf /usr/local/bin/pip*
sudorm-rf /usr/local/bin/pydoc*
sudorm-rf /usr/local/bin/python*
sudorm-rf /usr/local/share/python/
sudorm-rf /usr/bin/python2.7*

这样,我们就成功卸载了Python 2.7。但是,又出现了新的问题,因为在编译

opencv 4

的时候,显示:

/bin/sh: python: not found
原因

python原本映射的是

python 2.7

,但是刚刚已经被我们卸载了,所以导致映射不到。
解决办法:

解决办法

命令行执行:

ls-l /usr/bin/python*

然后会出现:

lrwxrwxrwx 1 root root       912月 2719:10 /usr/bin/python3 -> python3.8
-rwxr-xr-x 1 root root 546588011月 2218:22 /usr/bin/python3.8
lrwxrwxrwx 1 root root      3311月 2218:22 /usr/bin/python3.8-config -> x86_64-linux-gnu-python3.8-config
lrwxrwxrwx 1 root root      163月  132020 /usr/bin/python3-config -> python3.8-config
-rwxr-xr-x 1 root root     3841月  252023 /usr/bin/python3-futurize
-rwxr-xr-x 1 root root     3881月  252023 /usr/bin/python3-pasteurize

我们发现确实没有

/usr/bin/python

映射,这里选择重建映射,我们将

/usr/bin/python

映射到

/usr/bin/python3

上去,这样间接就相当于搭建了一座桥梁到

python3.8

上,就不会发生找不到命令的问题了。

我们执行:

sudoln-s /usr/bin/python3 /usr/bin/python

然后使用

ls -l /usr/bin/python*

再验证发现:

lrwxrwxrwx 1 root root      1612月 2822:02 /usr/bin/python -> /usr/bin/python3
lrwxrwxrwx 1 root root       912月 2719:10 /usr/bin/python3 -> python3.8
-rwxr-xr-x 1 root root 546588011月 2218:22 /usr/bin/python3.8
lrwxrwxrwx 1 root root      3311月 2218:22 /usr/bin/python3.8-config -> x86_64-linux-gnu-python3.8-config
lrwxrwxrwx 1 root root      163月  132020 /usr/bin/python3-config -> python3.8-config
-rwxr-xr-x 1 root root     3841月  252023 /usr/bin/python3-futurize
-rwxr-xr-x 1 root root     3881月  252023 /usr/bin/python3-pasteurize

回到

opencv 4

再次

cmake

,就能编译成功了。但是会在终端source显示:

/usr/local/bin/python3:解释器错误: 没有那个文件或目录

因此再重新链接python 3:

sudoln-sf /usr/bin/python3 /usr/local/bin/python3

问题解决。

三、参考链接

https://blog.csdn.net/m0_58235748/article/details/132165883
https://pythonjishu.com/zbriglwwgmeiiim/
https://tool.4xseo.com/a/15653.html
https://www.python100.com/html/72G0U877HGYA.html
https://blog.51cto.com/u_14558366/5178939

标签: ubuntu opencv

本文转载自: https://blog.csdn.net/weixin_46453398/article/details/135723922
版权归原作者 益力多咕噜咕噜 所有, 如有侵权,请联系我们删除。

“ubuntu20.04安装opencv4库”的评论:

还没有评论