![]() |
1
3
根据 the Bresenham line drawing algorithm ,确实有
点之间的像素
这条线是一条1像素粗的线。 请注意,像素的数量并不对应于点之间的欧几里得距离,而是对应于L-无穷远距离,也称为最大范数、棋盘距离或 Chebyshev distance . 编辑: 更新后的问题完全不同。以上为上限。 要计算两点之间直线上的实际白色像素数,需要绘制该直线。上面的维基百科链接提供了有关 这个 绘制线条的算法。 Here is a very simple implementation in MATLAB ,应该易于转换为python。虽然不是真正画线,但您将读取像素值,并计算白色的像素值。 @本·琼斯建议用python实现bresenham的算法。不必那么复杂。下面是一个简单的python脚本,它查找两点之间直线上的所有像素(从上面链接的matlab版本翻译而来):
这将产生输出:
现在只剩下读取这些坐标上的像素值,并确定它们是否为白色。 |
![]() |
2
1
如果你使用的是线性算法 Bresenham's ,并且正如您所描述的,这两个点都在粗白线上,那么这两个点之间的白色像素数实际上是这样的:
因为,假设整行都在白色区域,组成一行宽度为1的像素的数目
|
![]() |
July · 如何定义数字间隔,然后四舍五入 1 年前 |
![]() |
user026 · 如何根据特定窗口的平均值(行数)创建新列? 1 年前 |
|
Ashok Shrestha · 需要追踪特定的颜色线并获取坐标 1 年前 |
![]() |
Nicote Ool · 在FastApi和Vue3中获得422 1 年前 |
|
Abdulaziz · 如何对集合内的列表进行排序[重复] 1 年前 |
![]() |
asmgx · 为什么合并数据帧不能按照python中的预期方式工作 1 年前 |