对图片进行裁减预处理
生活随笔
收集整理的這篇文章主要介紹了
对图片进行裁减预处理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在Dataloader數據讀取之前,需要對圖片進行處理,這里展示了兩種在Dataset中對圖片隨機裁減的方法
首先我們有一批數據,我們需要對數據進行預處理,假設圖片的大小是隨機的,對于大于(3, 256, 256)的圖片,我們對他進行隨機的裁減,變為(3, 256, 256),對于小于(3, 256, 256)的圖片,我們將其進行填充,最后我們將圖片進行保存(注意在模型訓練過程中是沒有這一步的,這里只是為了方便演示結果)
預處理的過程一般在Dataset的__getitem__()函數中進行修改
第一種
用PIL的Image庫進行裁減
from PIL import Image import randomim = Image.open("12300.jpg") # 圖片的寬度和高度 ww, hh = im.size print("圖片寬度和高度分別是", ww, hh)# 元組里的元素分別是: # 距離圖片左邊界距離x, 距離圖片上邊界距離y # 距離圖片左邊界距離+裁剪框寬度x+w,距離圖片上邊界距離+裁剪框高度y+h # 截取圖片中一塊寬是256和高是256的 patch_size = 256 www = random.randint(0, ww-patch_size) hhh = random.randint(0, hh-patch_size)# crop x = www y = hhh w = 256 h = 256 region = im.crop((x, y, x+w, y+h)) region.save("./12300restore.jpg")第二種
讀取為tensor后進行裁減
Image.open得到的圖像經過torchvision.transforms.functional.to_tensor后為(c, h, w)類型
總結
以上是生活随笔為你收集整理的对图片进行裁减预处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习模型处理多标签(multi_la
- 下一篇: crop图片后,同时修改物体相应的坐标