我有两个点,(x1,y1)和(x2,y2),我想画一条连接这两个点的线。绘制线条后,我需要确定线条经过的所有坐标并将这些信息存储在 5x5 矩阵中。起点 (x1, y1) 应被视为该 5x5 矩阵的中心。
例如,如果我的起点是 (6, 3),终点是 (3, 8),我想存储落在这个以 (6, 3) 为中心的 5x5 矩阵内的线的所有索引。
如何使用 OpenCV 在 C++ 中实现此目的?任何代码片段或指导将不胜感激。
LineIterator it(grid, start, end, Scalar(255), 1, LINE_AA);
for (int m = 0; m < it.count; m++, ++it) {
Point pos = it.pos();
if (pos.x >= 0 && pos.x < 5 && pos.y >= 0 && pos.y < 5) {
grid.at<uint16_t>(pos) = 1;
}
}
我已经尝试过这个,但似乎没有帮助。如何正确确定坐标并将它们存储在矩阵中?有没有更好的方法来使用 OpenCV 的功能来处理这个问题?
LineIterator 是正确的方法,但是 5x5 内的坐标应该正确处理循环条件的双重检查,并且线'像素通过矩阵索引准确存储。