我的短线很少,我需要将它们扩展到图像边界,即:
我的方法基本上是将点位置乘以某个较大的值:
new LineSegment2DF(
new PointF(bestVLine.P1.X - bestVLine.Direction.X * 1000, bestVLine.P1.Y - bestVLine.Direction.Y * 1000),
new PointF(bestVLine.P1.X + bestVLine.Direction.X * 1000, bestVLine.P1.Y + bestVLine.Direction.Y * 1000)
)
它起作用了,我得到了较长的行,但是当我想遍历较长的行时出现了问题。对LineIterator
类的描述是:the line will be clipped on the image boundaries
,所以我认为它可以正常工作。
但是,当我在行上使用LineIterator
时,将得到负值,并且无法从图像中获取数据。
我这样使用它:MainImg.Data[lineIterator.Pos.X, lineIterator.Pos.Y, 0]
,例如LineIterator
给出的值是X=-55, Y=0
。
我认为LineIterator
类存在某种问题,我应该用不同的方法扩展行,这样一开始它们就会被剪切到图像边界。
有人知道该怎么做吗?