【发布时间】:2014-11-15 08:45:55
【问题描述】:
我想获得两种不同宽分辨率的等效像素位置。
这是一个例子。
在 1366x768 分辨率下,所需像素位于第 120 行和第 300 列。 我想将其转换为较低的分辨率,并获得相当于 120x300 点的原始分辨率和转换后的分辨率。
【问题讨论】:
标签: c++ opencv resolutions
我想获得两种不同宽分辨率的等效像素位置。
这是一个例子。
在 1366x768 分辨率下,所需像素位于第 120 行和第 300 列。 我想将其转换为较低的分辨率,并获得相当于 120x300 点的原始分辨率和转换后的分辨率。
【问题讨论】:
标签: c++ opencv resolutions
使用百分比。
例如120/1366=60/683=x ~ 0.0878 和 300/768=25/64=y ~ 0.3906。现在只需将这些百分比乘以您想要的分辨率。
例如,如果您的分辨率为800x600,并且希望该位置乘以。
x = 800 * 0.0878 = 70.24
y = 600 * 0.3906 = 234.36
之所以有效,是因为该位置已经“标准化”,因此它位于0 和1 之间。无论您将其乘以什么,都将具有相同的“维度”。例如假设我们希望屏幕800x600 中的400x300 位置在另一个屏幕中,以便它具有相同的比率。我们可以在上面解决您的问题:
x = 400 / 800 = 0.5
y = 300 / 600 = 0.5
为了获得任何其他屏幕的位置,我们将那里的结果乘以分辨率。
【讨论】: