我需要一种算法,给定图像的宽度,高度和目标比率将计算从图像的边缘剃光的像素数量,以达到该比率,在图像区域中具有最小的变化< /强>
如何实现这样的算法?
修改
很抱歉我的原始问题不一致;我修改了它。
答案 0 :(得分:4)
答案 1 :(得分:0)
要最小化区域的变化,您需要找到适合原始图像边界的所需宽高比的最大矩形。
因此,如果原始图像太宽,则使最终图像的高度=原始高度,并削减额外的宽度。
如果原始图像太高,请使最终图像的宽度=原始宽度,并削减额外的高度。
注意:这假设您不允许增加超出原始尺寸的宽度或高度。如果不是这种情况,算法将是:
约束1:x_final * y_final = x_initial * y_initial
Contraint 2:x_final / y_final = r
解决方案是:
x_final = sqrt(r * x_initial * y_initial)
y_final = sqrt(x_initial * y_initial / r)