【发布时间】:2011-06-24 06:23:37
【问题描述】:
我有一个图像和两个点,
我想读取这两点之间的像素,
并将它们重新采样成一个小的 1x40 数组。
我正在使用 EMGU,它是 OpenCV 的 C# 包装器。
谢谢,
软件
【问题讨论】:
标签: image image-processing opencv computer-vision emgucv
我有一个图像和两个点,
我想读取这两点之间的像素,
并将它们重新采样成一个小的 1x40 数组。
我正在使用 EMGU,它是 OpenCV 的 C# 包装器。
谢谢,
软件
【问题讨论】:
标签: image image-processing opencv computer-vision emgucv
您正在寻找的是Bresenham's line algorithm。它将允许您获得像素阵列中最接近直线的点。 Wikipedia 链接还包含帮助您入门的伪代码。
【讨论】:
我会先尝试这样做:
GetRotationMatrix2D) 计算旋转矩阵WarpAffine)Transform)GetRectSubPix)这里和那里的插值可能会影响结果,但无论如何你都必须进行插值。您可以考虑在旋转之前裁剪图像。
否则,您可以使用线迭代器来迭代两点之间的像素。请参阅InitLineIterator 的文档(抱歉,该链接指向 OpenCV 的 Python 版本,我从未听说过 EMGU)。我想在这种情况下,您会遍历未抗锯齿的线条的像素。但这应该快得多。
最后,您可以将图像转换为数组,计算线条通过哪些元素并手动进行二次采样和插值。
【讨论】: