Pillow Image 填充圖像

在檢測中,需要把原始圖像轉換爲,與目標尺寸匹配的圖像,保持等比例,其餘部分用灰色填充。

pad_image步驟:

  1. 計算按目標圖像縮放之後的寬高;
  2. resize()原始圖像;
  3. 新建目標尺寸target_size的圖像;
  4. paste()貼圖,將縮放後的原始圖像,放入目標圖像中;
def pad_image(image, target_size):
    iw, ih = image.size  # 原始圖像的尺寸
    w, h = target_size  # 目標圖像的尺寸
    scale = min(w / iw, h / ih)  # 轉換的最小比例

    # 保證長或寬,至少一個符合目標圖像的尺寸
    nw = int(iw * scale)
    nh = int(ih * scale)

    image = image.resize((nw, nh), Image.BICUBIC)  # 縮小圖像
    image.show()
    new_image = Image.new('RGB', target_size, (128, 128, 128))  # 生成灰色圖像
    # // 爲整數除法,計算圖像的位置
    new_image.paste(image, ((w - nw) // 2, (h - nh) // 2))  # 將圖像填充爲中間圖像,兩側爲灰色的樣式
    new_image.show()

    return new_image

測試:

def main():
    img_path = './test_imgs/6412275179854758913.jpg'
    image = Image.open(img_path)
    size = (416, 416)
    pad_image(image, size)  # 填充圖像

if __name__ == '__main__':
    main()

輸出:

Small

Paste

OK, that’s all! Enjoy it!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章