计算图像中两点之间的白色像素

知识寻求者

我找到了这条粗白线的起点和终点,这些是[234, 2][134, 397]现在我想直接计算位于这两个点之间的白色像素的数量。我的目的是计算不在粗线上的白色像素的数量。我想计算位于 1 像素宽度线上的白色像素。我对 Python 很陌生。我花了一整天的时间来寻找我的解决方案,但没有找到任何方法。我怎样才能找到那个?

在此处输入图片说明

我努力寻找大致的起点和终点是:

for y in range(height):
    for x in range(width):
         ....
          ....
    print(p1," , ",p2)

现在我在下一步面临麻烦。即计算这两个点之间的白色像素数。

克里斯·伦戈

根据Bresenham 画线算法,正好有

max(abs(p1.x - p2.x), abs(p1.y - p2.y)) - 1

p1之间p2的像素(不计算像素p1p2)。

这条线是一条 1 像素的粗线。

请注意,像素数不对应于点之间的欧几里得距离,而是对应于 L 无穷大距离,也称为最大范数、棋盘距离或切比雪夫距离


编辑:更新的问题完全不同。以上将是上限。

要计算两点之间线上的实际白色像素数,您需要绘制该线。上面的维基百科链接给出了详细算法来画线。这是在 MATLAB 中的一个非常简单的实现,应该很容易转换为 Python。虽然不是实际绘制线条,而是读取像素值,并计算白色的值。

@Ben Jones 提出了 Bresenham 算法的 Python 实现。没必要那么复杂。这是一个简单的 Python 脚本,它在两点之间的直线上查找所有像素(从上面链接的 MATLAB 版本翻译):

p1 = np.array([0,0])
p2 = np.array([7,4]) % Two example points.

p = p1
d = p2-p1
N = np.max(np.abs(d))
s = d/N
print(np.rint(p).astype('int'))
for ii in range(0,N):
   p = p+s;
   print(np.rint(p).astype('int'))

这会产生输出:

[0 0]
[1 1]
[2 1]
[3 2]
[4 2]
[5 3]
[6 3]
[7 4]

现在剩下的就是读取这些坐标处的像素值,并确定它们是否为白色。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

EmguCV:获取两点之间的直线中像素的坐标

来自分类Dev

计算3D中两点之间的距离

来自分类Dev

计算java中两点之间的距离

来自分类Dev

计算两点之间的网格距离

来自分类Dev

计算两点之间的SVG弧

来自分类Dev

计算两点之间的SVG弧

来自分类Dev

计算两点之间的距离(Haskell)

来自分类Dev

在JavaScript中的两点之间画线?

来自分类Dev

如何计算PostGIS中两点之间的方位角?

来自分类Dev

计算两点之间的最短路径

来自分类Dev

如何使用GeoDjango计算两点之间的实际距离?

来自分类Dev

计算平坦土地上两点之间的距离

来自分类Dev

使用Arduino计算两点之间的GPS距离

来自分类Dev

如何计算两点之间的线的长度?

来自分类Dev

计算水平轴与两点之间的角度

来自分类Dev

使用距离公式计算两点之间的距离

来自分类Dev

如何计算两点之间的 3D 角度?

来自分类Dev

图像上两点之间的实际距离

来自分类Dev

图像上两点之间的实际距离

来自分类Dev

如何在Unity中的两点之间移动对象?

来自分类Dev

如何找到序列矩阵中两点之间的距离?

来自分类Dev

mysql中两点之间的距离不起作用?

来自分类Dev

在 OpenLayers4 中绘制两点之间的路线

来自分类Dev

如何获取使用WPF渲染的jpeg图像上两点之间的精确像素数。我的解决方案不同于GIMP

来自分类Dev

在PostGIS中,哪一种是计算两点之间距离的最准确方法?

来自分类Dev

如何计算两点之间的角度并在其上旋转第三点浆糊?

来自分类Dev

计算 3d 空间中特定距离的两点之间的点

来自分类Dev

计算两个数据集(最近邻居)的两点之间的距离

来自分类Dev

两点的CUDA计算距离

Related 相关文章

热门标签

归档