我有一张图片(见下文),上面标有两条平行的绿线。该图像在 C++ 的 OpenCV Mat 中读取,绿线的斜率及其到图像中心的距离是已知的。
现在我想遍历这两条绿线之间区域中的所有像素。我怎么解决这个问题?如果有人能给我一个代码示例,那将非常有帮助。
非常感谢。
最佳答案
斜率的公式如下:
y = mx + b
因为你有两个,你应该有两个斜率公式:
y1 = m1x1 + b1
y2 = m2x2 + b2
m1, m2, b1, b2
应该是已知的。
您所要做的就是从 y1 = 0
和 y2 = 0
开始,然后在 x1
到 x2< 之间迭代
对于每个 y1 = y2
从上到下。
示例代码:
for (int y = 0; y < imageHeight; ++y)
{
int x1 = (y - b1) / m1;
int x2 = (y - b2) / m2;
for (int x = x1; x < x2; ++x)
{
// Do something.
}
}
关于c++ - OpenCV:如何迭代图像特定区域中的每个像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36970099/