【发布时间】:2010-11-11 18:53:22
【问题描述】:
我的 matlab 项目有问题
我有一个 RGB 彩色图像,我有两个指定的像素 (x1,y1) 和 (x2,y2) 我想检查图像中的每个像素并确定像素是否属于 (x1,y1) 和 (x2,y2) 之间的线
我尝试使用这些功能
m = (y2-y1)/(x2-x1); b= y1 - m*x1; 如果 (y==m*x+b) 则为真
但它几乎失败了
有人有其他方法来解决它吗?请
谢谢
【问题讨论】:
我的 matlab 项目有问题
我有一个 RGB 彩色图像,我有两个指定的像素 (x1,y1) 和 (x2,y2) 我想检查图像中的每个像素并确定像素是否属于 (x1,y1) 和 (x2,y2) 之间的线
我尝试使用这些功能
m = (y2-y1)/(x2-x1); b= y1 - m*x1; 如果 (y==m*x+b) 则为真
但它几乎失败了
有人有其他方法来解决它吗?请
谢谢
【问题讨论】:
请记住,像素是有面积的,而不仅仅是点。根据您定义坐标的方式,您正在检查诸如“我的像素的中心是否正好位于这些其他像素的中心之间的线上”
我猜你可能想留一些余地,即设置一些容差,然后检查
if abs(m*x+b -y) < tolerance
而不是直接相等
【讨论】:
尽管您可能不知道,但您正在尝试实现 Bresenham's Algorithm 或类似的算法。
【讨论】: