获得两个不同宽分辨率的等效像素

时间:2014-11-15 08:45:56

标签: c++ opencv resolutions

我希望获得两种不同宽分辨率的等效像素位置。

这是一个例子。

在1366×768分辨率中,期望像素位于行120和列300中。 我想将它转换为较低的分辨率,并从原始转换为转换后的120x300点。

1 个答案:

答案 0 :(得分:1)

使用百分比。

e.g。 120/1366=60/683 = x ~ 0.0878300/768=25/64 = y ~ 0.3906。现在,只需将这些百分比乘以所需的分辨率即可。

例如,如果您的分辨率为800x600,并且希望此位置只是相乘。

x = 800 * 0.0878 = 70.24
y = 600 * 0.3906 = 234.36

这是有效的,因为该位置得到了“标准化”,因此它位于01之间。无论你将它与它相乘,都将具有相同的“尺寸”。例如假设我们希望屏幕400x300中的位置800x600位于另一个屏幕中,以便它具有相同的比率。我们可以在那里解决您的问题:

x = 400 / 800 = 0.5
y = 300 / 600 = 0.5

要获得任何其他屏幕的位置,我们将结果与分辨率相乘。

Percentage