在不同的图像尺寸上实现类似的图像覆盖比例缩放

时间:2018-10-13 18:07:48

标签: c# .net bitmap gdi+ system.drawing

我正在处理大量不同大小的图像。我将这些图像叠加在这些图像上。我需要在各种尺寸的图像上实现统一的外观。请参见下面的图像

图像1和2中的橙色矩形的大小相同,但是图像看起来并不相同。我如何缩放橙色矩形,以便在任何尺寸的图像上看起来均匀。

图片1    enter image description here

Image2 enter image description here

我尝试了以下

 scalewidth = (float)overlayimage.Width * ((float)currentimage.Width / (float)refsize.Width);

 scaleheight = (float)overlayimage.Height * ((float)currentimage.Height / (float)refsize.Height);

1 个答案:

答案 0 :(得分:0)

您可以通过将前景缩放到背景图像宽度来实现。

获取背景宽度

b_h, b_w, b_ch = background.shape
o_h, o_w, o_ch = orange.shape

缩放橙色矩形

    imgScale = b_w/o_w
    new_o_h,new_o_w = int(o_h*imgScale), int(o_w*imgScale)
    new_orange = cv2.resize(orange,(new_o_w, new_o_h))

现在您可以叠加。