摸索了很久终于成功在香橙派上安装好了opencv4
记录一下过程吧
首先一般香橙派和树莓派默认python是2.7,先把默认版本修改成python3
输入指令
whereis python
可以看到有很多可用的python版本
我这里使用update-alternatives系统进行设置
1.先添加python3到update-alternatives系统:
#python3.x指的是自己系统可以用的python版本,我的这里是python3.8
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.x 2
2.如果不行,使用update-alternatives来配置默认Python版本
sudo update-alternatives --config python
3.验证更改结果
python --version
如果出现以下报错
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8.10
update-alternatives: --install needs <link> <name> <path> <priority>
Use 'update-alternatives --help' for program usage information.
这是因为错误消息指出了 update-alternatives --install
命令的使用方法不正确。在使用此命令时,需要指定链接(link)、名称(name)、路径(path)和优先级(priority)。在我的的情况下,如果想将 python
命令链接到 Python 3.8.10,应该按照以下格式使用命令:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8.10
这里的 /usr/bin/python
是将要创建或修改的符号链接(link),python
是此链接的名称(name),/usr/bin/python3.8
是指向的实际 Python 3.8.10 可执行文件的路径(path),最后的 10
是此安装选项的优先级(priority)。优先级是一个数字,当有多个版本可供选择时,具有最高优先级的版本将成为默认版本。
4.更新系统,首先保证香橙派操作系统是最新的,可以使用一下命令进行更新
sudo apt-get update
sudo apt-get upgrade
如果出现这个报错
E: Failed to fetch http://211.69.138.66/cache/1/02/packages.microsoft.com/65f2f06e6502da9970cccffbef47b6f0/Packages.gz
E: Failed to fetch http://211.69.138.66/cache/4/02/packages.microsoft.com/e277a777bf09f103f662f4c498a0359b/Packages.gz
E: Some index files failed to download. They have been ignored, or old ones used instead.
使用这个清理apt缓存然后再次更新
sudo apt-get clean
sudo apt-get update
sudo apt-get upgrade
下载opencv依赖库,使用一下命令安装
sudo apt-get install build-essential cmake git pkg-config libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install python2.7-dev python3-dev
如果无法下载E: Unable to locate package libjasper-dev这个库,可以查看这个博主连接
解决 “E: Unable to locate package libjasper-dev” (亲测有效)_e: 无法定位软件包 libjasper-dev-CSDN博客
5.下载opencvcv源码
首先进入官网Releases - OpenCV
下载opencv-4.8.0版本,点击source下载,这样下载的会是一个opencv-4.8.0.zip文件
6.下载完成后,进入香橙派下载文件夹。
cd Downloads/
解压
unzip opencv-4.8.0.zip
进入解压后的文件
cd opencv-4.8.0
创建构建目录build
mkdir build
进入目录
cd build
使用cmake配置后续的构建环境
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_GENERATE_PKGCONFIG=ON ..
'''
第一行是构建的版本:这里是发行版RELEASE
第二行是安装的目录
第三行是显式地通过添加 -D OPENCV_GENERATE_PKGCONFIG=ON 到 CMake 命令来确保OPENCV能够被pkg-config工具找到
'''
然后使用make -j4或者make -j6来进行编译,这个编译时间比较长,j后面的数字可以修改成4,6,8,视你的机器的处理核心数来定,越高的话越快,我是make -j8
make -j8
这样子就可以了,接下来使用命令安装Opencv,这样会安装Opencv以及生成的pkg-config文件
sudo make install
最后更新动态链接器的缓存
sudo ldconfig
这样就完成了
7.验证是否安装成功,使用pkg-config来检查是否能够找到OpenCV
pkg-config --modversion opencv4
如果你没有在cmake配置后续的构建环境中使用-D OPENCV_GENERATE_PKGCONFIG=ON,这里就会报错找不到Opencv,你重新从cmake配置加上这个参数那里再来一次即可。