Opencv是一个开源的计算机视觉库,可以给开发人员提供更便捷的方式设计复杂的视觉应用,Opencv主要是用c和c++编写,可以运行在Windows/Linux/Mac等上。这几天尝试着在RK3288上安装Opencv,被虐了好多遍,幸好没有放弃,终于弄出了。之前一直是通过电脑先交叉编译Opencv再移植的方法,但是在编译过程中总是遇到各种问题,换了不同的Opencv源又会出现新的问题,所以如果有交叉编译移植成功的朋友不妨交流一下。这里采用了一种比较折中的方法,直接在开发板上配置好环境,然后安装编译Opencv。
一、前期准备
开发板烧写的固件是官方网站下载的,Ubuntu的系统。
将开发板与电脑通过串口连接起来,方便命令控制,或者用adb,网口怎进行连板
在Opencv官方网站下载一个在linux下的Opencv源,放到开发板的一个目录下,Releases - OpenCV
二、环境配置
1、更新软件源
sudo apt-get update
sudo apt-get upgrade
2、下载依赖项
sudo apt-get install gcc g++
sudo apt-get install cmake
sudo apt-get install build-essential
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev
sudo apt-get install python-dev python-numpy(python-dev python-numpy要分开安装)
3、解压缩
去到opencv源码所在文件夹下,(我的在/home目录下),解压缩
unzip opencv-4.4.5.zip
4、编译Opencv
cd /home/opencv-4.4.5
mkdir build
cd build/
使用cmake工具编译生成makefiel,指定opencv安装在/usr/local(这个安装目录最好不要改,如果要改也是弄成/usr/local/xx这种目录)
cmake -D CMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
等到环境检测完成
make -j8
等到编译完毕,install一下让它生效
make install
在usr/local/lib下ls有很多编译好的opencv动态链接库
opencv环境配置:
sudo gedit /etc/ld.so.conf.d/opencv.conf
填入
/usr/local/lib
保存退出
更新系统共享链接库
sudo ldconfig
配置bash
sudo gedit /etc/bash.bashrc
在最后换行填入:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存退出
source /etc/bash.bashrc
sudo updatedb
测试opencv版本号
pkg-config --modversion opencv4
若:libjasper-dev出现无法定位问题
sudo add-apt-repository "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe"
sudo apt update
sudo apt install libjasper-dev
验证
#include <opencv2/opencv.hpp>
#include <iostream>
int main() {
// 读取JPEG格式的图像
cv::Mat image = cv::imread("123.jpg");
// 检查图像是否成功读取
if (image.empty()) {
std::cerr << "Could not open or find the image!" << std::endl;
return -1;
}
// 显示图像
cv::imshow("Image", image);
// 等待用户按下任意键
cv::waitKey(0);
return 0;
}
编译命令 sudo g++ opencv.cpp -o opencv `pkg-config --cflags --libs opencv4`(这里的两个单引号是键盘左上角的按键,即ESC键的下面按键)
编译好之后生成可执行文件 opencv, 直接 ./opencv 就能显示图片。