gpt4 book ai didi

javascript - 滤色技术OpenCV

转载 作者:太空宇宙 更新时间:2023-11-03 21:25:14 24 4
gpt4 key购买 nike

我正在阅读一张图片并过滤掉颜色,这就是我在以下图片中得到的结果。代码来自 opencv 模块中的示例文件夹。

Prior Color Filter Post Color Filter

我正在尝试将图片反馈给 A.R Drone 2.0 并让无人机跟随白色。我将如何完成第二部分?

var cv = require('C:/users/danny/codes/node_modules/opencv/lib/opencv');

// (B)lue, (G)reen, (R)ed
var lower_threshold = [220, 220, 220];
var upper_threshold = [255, 255, 255];

//var lower_threshold = [46, 57, 83];
//var upper_threshold = [80, 96, 115];

cv.readImage('C:/users/danny/codes/node_modules/opencv/examples/files/gutter.jpg',
function(err, im) {
if (err) throw err;
if (im.width() < 1 || im.height() < 1) throw new Error('Image has no size');

im.inRange(lower_threshold, upper_threshold);
im.save('C://users/danny/codes/coin_detected.jpg');
console.log('Image saved to C://users/danny/codes/coin_detected.jpg');
});

最佳答案

由于您的无人机可以在 3D 空间中移动,我将建议在 2D 领域中执行一些伪代码步骤,以帮助您开始使用简单的直线跟随器。然后您可以外推到 3D 并添加更多自由度以满足您的需求。

  1. 执行 Erosion/Dilation如有必要,对图像进行操作以去除多余空间。
  2. 调用cv::findContours()获取图像中白色区域边缘周围的轨迹。
  3. 按像素区域对找到的轮廓进行排序,以找到您想要遵循的轮廓。我猜你最想跟随最大的像素区域。尝试使用 contour moments .
  4. 使用 cv::fitline() 将一条线拟合到轮廓上或您自己的方法。
  5. 获取线的 Angular 并将其映射到您的无人机 Controller 以调整偏航。

在这里,您可以执行其他几项基本操作来控制无人机的运动:

  • 设置轮廓像素质量阈值。如果轮廓区域 > 阈值,则向上移动。
  • 查看阈值区域的形状。如果它更像是梯形而不是矩形,您可以调整滚动/俯仰。

关于javascript - 滤色技术OpenCV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46200804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com