二、RK3588-安装Opencv-4.8.1(C++版本)

1.前言

        OpenCV是一个跨平台的计算机视觉和机器学习软件库,基于Apache2.0许可(开源)发行。它可以在Linux、Windows、Android和Mac OS操作系统上运行。OpenCV由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口。这个库实现了图像处理和计算机视觉方面的很多通用算法,主要倾向于实时视觉应用。OpenCV也提供对于C#、Ch、Ruby,GO的支持。

        OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序,该程序库也可以使用英特尔公司的IPP进行加速处理。OpenCV-Python是OpenCV的Python API,结合了OpenCV C++API和Python语言的最佳特性。所有OpenCV数组结构都转换为Numpy数组。

2. Opencv文件准备

2.1更新软件列表

sudo apt update

2.2安装依赖

sudo apt install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev libv4l-dev libxvidcore-dev libx264-dev libatlas-base-dev gfortran

2.3下载Opencv

        现在zip文件:opencv-4.8.1

3.安装

3.1 拷贝文件并解压

unzip  opencv-4.8.1.zip

3.2 编译

cd opencv-4.8.1

mkdir build

cd build

cmake .. 
make -j8

3.3 安装

sudo make install

3.4 配置环境

step1: 配置ld.so.conf文件

(1) sudo gedit /etc/ld.so.conf

(2)添加内容

        include /etc/ld.so.conf.d/*.conf
        include /usr/local/lib

(3)sudo ldconfig

step2: 生成opencv4.pc文件

     install后使用pkg-config --modversion opencv4查看版本,提示缺少opencv4.pc这个配置信息文件

 sudo vim /usr/local/lib/pkgconfig/opencv4.pc

拷贝下面的内容,版本号修改成安装的版本号

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

Name: opencv
Description: The opencv library
Version:4.8.1
Cflags: -I${includedir}/opencv4
Libs: -L${libdir} -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann  -lopencv_core

step3:  配置系统bash

sudo gedit /etc/bash.bashrc

        末尾添加

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

source /etc/bash.bashrc

step4: 查看版本

pkg-config --modversion opencv4

4.验证Opencv的版本以及是否可用

        step1:构建CMakeLists.txt

cmake_minimum_required(VERSION 3.10)

project(opencv_test)

# 检查OpenCV库
find_package(OpenCV REQUIRED)

# 打印opencv库的相关信息
if(OpenCV_FOUND)
    message(STATUS "OpenCV library status:")
    message(STATUS "version: ${OpenCV_VERSION}")
    message(STATUS "include path: ${OpenCV_INCLUDE_DIRS}")
else()
    message(FATAL_ERROR "OpenCV library not found")
endif()
# 添加头文件
include_directories(${OpenCV_INCLUDE_DIRS})
# 链接库
link_libraries(${OpenCV_LIBS})

add_executable(opencv_test gray_test.cpp)

step2:编写源文件

// 图片的读取和显示
// 导入opencv头文件
#include "opencv2/opencv.hpp"
#include 

int main(int argc, char** argv)
{
    // 读取图片,mat是matrix的缩写,是一个矩阵,类似与numpy ndarray
    cv::Mat image = cv::imread("./cat.jpg");
    // 判断是否读取成功
    if (image.empty())
    {
        std::cout << "无法读取图片 " << std::endl;
        return 1;
    }
    // 打印图片高度和宽度
    std::cout << "图片高度: " << image.rows << " 宽度: " << image.cols << std::endl;

    // 打印图片data
    // 以Numpy的方式打印
    // std::cout << "图片data: " << cv::format(image, cv::Formatter::FMT_NUMPY) << std::endl;
    // 以python list的方式打印
    // std::cout << "图片data: " << cv::format(image, cv::Formatter::FMT_PYTHON) << std::endl;

    // 创建一个灰度图
    cv::Mat gray;
    // 转换为灰度图
    cv::cvtColor(image, gray, cv::COLOR_BGR2GRAY);
    // 保存
    cv::imwrite("./gray.jpg", gray);


    return 0;
}

step3:编译

(1)cmake -S . -B build

二、RK3588-安装Opencv-4.8.1(C++版本)_第1张图片

        可以看到opencv的版本是4.8.1

(2)cmake --build build

        编译好的可执行文件在build目录下:opencv_test

(3)mv ./build/opencv_test ./

(4)./opencv_test

二、RK3588-安装Opencv-4.8.1(C++版本)_第2张图片

二、RK3588-安装Opencv-4.8.1(C++版本)_第3张图片 二、RK3588-安装Opencv-4.8.1(C++版本)_第4张图片

5.结尾      

         到此,RK3588安装新版的Opencv和C++调用opencv就完成了,之前是熟悉python,现在C++版本的内容慢点开始学习吧。

你可能感兴趣的:(计算机视觉-C++版本,opencv,人工智能,计算机视觉)