如何在EmguCV中将线延伸到图像边界?

时间:2020-07-27 16:17:52

标签: c# image-processing emgucv

我的短线很少,我需要将它们扩展到图像边界,即:

image on start

image in the end

我的方法基本上是将点位置乘以某个较大的值:

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类存在某种问题,我应该用不同的方法扩展行,这样一开始它们就会被剪切到图像边界。

有人知道该怎么做吗?

0 个答案:

没有答案