在Java中查找一行中的所有像素

时间:2012-02-07 10:05:53

标签: java algorithm line pixel

为了做到这一点:说我有两个特定像素a& b,以及其他随机列表。我现在想要检查该列表中的所有像素,如果它们在通过& b(但不限于将& b作为端点!) 我看了一下Bresenham的线算法,但这似乎只找到了& B' 我也看了一般的线性方程式,但我有点坚持如何将连续线正确地离散化为像素......

(我正试图在java中实现一个随机抽样算法,试图在其上找到具有最多像素的行,如果这很重要的话。)

非常感谢您对此的任何帮助:)

2 个答案:

答案 0 :(得分:4)

我强烈建议您计算点与线之间的距离

如果您使用一个像素作为测量单位(如果您在像素坐标系中工作,则会使用该像素),您只需检查从该点到该线的距离是否为< 1。

以下是计算点与线之间距离的方法:

答案 1 :(得分:0)

您不能在a和b之间搜索,而是在同一行上但在图像边界之外的点之间搜索。你可以简单地将向量(b-a)放到a侧和b侧。并使用你的Bresenham线算法。

至于更具体的答案,请更好地定义问题。您是否将像素视为点或正方形或圆形?您所说的“像素在线”是什么?你的线有多宽?您正在寻找cm长度或矩形边框中具有最大像素数的行?您搜索哪些行?