2014-09-05 102 views
0

我想以较大的图像计算这个星的角点或轮廓。为此,我将尺寸缩小到一个较小的尺寸&我可以清楚地获得这些要点。现在如何在原始图像中映射这个点?我正在使用opencv C++。 enter image description here如何在缩小的图像中查找等效点?

+0

是的,如果纵横比仍然相同。如果P1的x坐标是小于1的X,那么在较大的一个上它将是X *(1024/640) – 2014-09-05 11:01:10

+0

缩放是由某个原点完成的。如果比例原点是(0,0),则可以将每个点与比例因子相乘。如果要围绕另一点进行缩放,则必须计算'(point-scaleOrigin)* scale_factor + scaleOrigin'。如果你想围绕恒星的中心进行缩放,你必须计算恒星的重心,并将其用作scaleOrigin。映射将与此操作相反。 – Micka 2014-09-05 11:01:11

回答

2

考虑一个简单的例子:图像尺寸减少了一半。

因此,原始图像中的笛卡尔坐标(x,y)变成缩小图像中的坐标(x/2,y/2),并且缩小图像中的坐标(x',y')对应于坐标(x * 2,y * 2)。

当然,在缩小比例的图像中,小数坐标通常会被舍入,所以精确映射仅适用于此示例原始图像中的偶数坐标。

概括地说,如果图像的宽度以水平方向按比例缩放了w,垂直方向按比例缩放了h,则坐标(x,y)变为四舍五入的坐标(x * w,y * h)。在我给的例子,无论是W和H是1/2,或0.5

你应该能够找出值wh自己,并能够坐标映射平凡。当然,由于四舍五入,您将无法计算原始图像中的确切坐标。