外观
opencv 边缘检测示例
2025-10-29
本文介绍了如何在 RuiChing Studio 中创建一个 OpenCV 边缘检测示例工程,并将其编译后在开发板上运行。旨在帮助读者使用 OpenCV 进行边缘检测。
OpenCV 简介
OpenCV 是一个功能强大、应用广泛的计算机视觉库,提供了大量的计算机视觉算法和图像处理工具,广泛应用于图像和视频的处理、分析以及机器学习领域。
Canny 边缘检测
使用 OpenCV 提供的 Canny 边缘检测算法,将 sd 中的图片处理保存为新的图片。
创建工程点击展开
依次点击 “文件” -> “新建” -> "RT-Thread RuiChing App 项目"。

在弹出新建向导中选择 开发版 、BSP: 、示例 、 调试器/下载器。选择好之后点击 “完成”。

点击 “完成” 后,等待工程创建完成。

创建完成。

构建工程点击展开
单击工程使工程进入 Active-Debug 模式。

点击工具栏上的构建按钮进行工程编译。

构建成功后,会显示构建成功的信息。

固件下载点击展开
固化设备树

固化 APP

核心示例代码
opencv 示例相关
imread:加载需要检测的图像;cvtColor:转换为灰度图;Canny:应用 Canny 边缘检测;imwrite:保存处理后的图片。
applications/canny_example.cpp
static int canny_example(int argc, char *argv[])
{
const char *default_input = "/sdmmc/input.jpg";
const char *default_output = "/sdmmc/output.jpg";
const char *input_path = default_input;
const char *output_path = default_output;
if (argc >= 2)
{
input_path = argv[1];
}
if (argc >= 3)
{
output_path = argv[2];
}
Mat image = imread(input_path, IMREAD_COLOR); // 读取图片
if (image.empty())
{
rt_kprintf("Error: open %s failed\n", input_path);
return -1;
}
Mat grayImage;
cvtColor(image, grayImage, COLOR_BGR2GRAY); // 转换为灰度图
Mat edges;
Canny(grayImage, edges, 100, 200); // 边缘检测
bool result = imwrite(output_path, edges); // 保存处理后的图片
if (!result)
{
rt_kprintf("Error: Failed to save the image to %s\n", output_path);
return -1;
}
rt_kprintf("Success: Edge detection completed\n");
return 0;
}运行示例
操作步骤
准备一张 jpg 格式的图片,命名为input.jpg,使用 FTP 服务,将input.jpg存入开发板 tmp 目录,FTP 的使用方法见 FTP 服务器。
在 RuiChing Studio 中下载程序,下载成功后系统自动重启,然后输入 canny_example 命令,程序会自动获取 tmp/input.jpg 图片。
msh />canny_example
Success: Edge detection completed
msh />ls tmp/
Directory tmp/:
System Volume Information<DIR>
output.jpg 93249
webnet <DIR>
input.jpg 719641处理前后对比


