ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

RK3588平台下OpenCV视觉库调用实践C++

RK3588平台下OpenCV视觉库调用实践C++ OpenCVOpen Source Computer Vision Library是一个开源的计算机视觉和机器学习软件库提供了数百种计算机视觉算法核心功能包括图像视频处理、特征检测、目标检测、图像分割、相机标定与3D重建、机器学习等本文通过一个简单的图像处理程序来介绍OpenCV在RK3588平台下如何调用C版本完成完整工程搭建亲测可运行。主要功能是读取一张指定路径的图片将其缩放为 400×400 像素转换为灰度图然后保存为resized.png。1. 头文件与命名空间#include iostream #include opencv2/opencv.hpp2. 主函数入口int main(int argc, char **argv)argc命令行参数个数。argv命令行参数字符串数组argv[0]通常是程序自身路径argv[1]是第一个用户传入的参数。3.参数检查if (argc ! 2) { std::cout 请输入图片路径 std::endl; return -1; } else { std::cout 图片路径为 argv[1] std::endl; // ... 处理代码 ... }程序期望恰好 1 个额外参数即图片路径。如果参数数量不对则输出提示信息并返回-1若参数正确则打印该路径。4、读取图片cv::Mat image cv::imread(argv[1]);cv::imread()用于从文件加载图像返回一个cv::Mat对象矩阵它是 OpenCV 中存储图像数据的核心数据结构。5、缩放图像cv::Mat image_resized; cv::resize(image, image_resized, cv::Size(400, 400));cv::resize()将原始图像缩放到 400×400 像素宽和高均为 400默认使用双线性插值cv::INTER_LINEAR。6、转换为灰度图cv::cvtColor() 将缩放后的彩色图像BGR 通道顺序OpenCV 默认转换为单通道灰度图像cv::cvtColor()将缩放后的彩色图像BGR 通道顺序OpenCV 默认转换为单通道灰度图像。7、保存结果cv::imwrite(resized.png, image_resized);cv::imwrite()将灰度图保存为当前工作目录下的resized.png文件PNG 格式无损压缩。8、CMakeList.txt 通过cmake完成编译cmake_minimum_required(VERSION 3.4.1) set(PROJECT_NAME demo_opencv) set(SDK_ROOT_PATH /home/tronlong/3588/linux-sdk/rk3588_linux_release_v1.2.1) set(RKNPU_PATH ${SDK_ROOT_PATH}/external/rknpu2) ... ... # opencv set(OpenCV_DIR ${RKNPU_PATH}/examples/3rdparty/opencv/opencv-linux-aarch64/lib/aarch64-linux-gnu/cmake/opencv4) find_package(OpenCV REQUIRED) ... ...如果这篇小文帮到了你别忘了点个关注也欢迎大家在评论区交流。我会持续更新更多有趣的视觉小实验和实用技巧。关注后私信我“我要资源”我会把本篇完整代码 包发给你。
返回列表