【问题标题】:get pixels of a line -:- MATLAB [duplicate]获取一条线的像素-:- MATLAB [重复]
【发布时间】:2010-12-16 12:44:49
【问题描述】:

可能重复:
detect if a pixel in RGB image belong to a line between two other pixels (MATLAB)

我想检测图像中的两个像素并获取它们之间绘制线的所有像素 .

我不想画线,我只想获得两个像素之间虚拟线的所有像素位置 [as (x,y) in the image] .

MATLAB 中的哪个函数可以帮助我编写这段代码,我该如何使用它? .

谢谢!

【问题讨论】:

标签: matlab plot line


【解决方案1】:

你需要像Bresenham's line algorithm 这样的东西。我不知道这方面的 Matlab 函数,但现在你知道你在寻找什么,你的搜索可能会更有成效。而且在Matlab中实现也不是很困难。

【讨论】:

    【解决方案2】:

    如果我正确理解了您的问题,那么您有两个问题。

    (1) 如何检测图像中的两个像素 ---这在很大程度上取决于您在问题中未提及的其他内容,它们的属性,例如颜色,图像中的位置(它们在一起或分开),这两个像素相对于整个图像大小(设计一种有效的检测方法。)

    (2) 如何显示像素之间没有线条 --- 我想你可以给所有像素位置一个 0.5 的偏移,并使用“pcolor”来显示图像。然后,您可以输入如下:

    p = pcolor (X,Y,C);

    set(p, 'EdgeColor','none'); % 这将删除像素之间的线条。

    祝你好运。

    【讨论】:

      【解决方案3】:

      求解简单的y = m*x + b 线性方程(或其参数形式),然后检查该线穿过哪些像素也可能就足够了。这真的取决于你希望你的线路有多精确。当然,Bresenham 的线算法会给出更准确的结果(更细、更漂亮的线)。

      【讨论】:

      • y = m*x + b .......... 我不认为它可以正确地做我想要的,因为相同比例的许多线具有相同的斜率,我处理具有区域(不是绝对点)的像素,并且可能某些像素不能完全达到线方程........我将尝试使用 Bresenham 的线算法...谢谢所有
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-09
      • 2014-09-02
      • 1970-01-01
      • 1970-01-01
      • 2015-06-20
      • 2014-12-26
      • 2011-01-28
      相关资源
      最近更新 更多