CenterCrop图像裁剪原理
生活随笔
收集整理的這篇文章主要介紹了
CenterCrop图像裁剪原理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
CenterCrop模式解決的就是:
? 我們按照Image與ImageView的寬高比差值,分兩種情況進行討論。
? 假設原始圖片高h,寬w , Imageview的高y,寬x ,比較兩者高寬比。裁剪出的圖稱為Image1:
? 1、 當 y / x - h / w > 0 時
? 說明Imageview的高寬比大于圖片的高寬比,如圖所示:
左圖實線標示的是圖片Image的高和寬,右圖是Imageview。 我們需要從Image的中間按照比例y/x裁剪出一幅圖Image1來,如圖中虛線所示。
? 顯而易見,Image1的寬度是w1,高度是h 。
? Image1的高寬比必須和Imageview的高寬比相同,即 y / x = h / w1 , 計算出 w1 = (h * x )/ y
?
?2、當 y / x - h / w <= 0時
? 說明Imageview的高寬比小于圖片的高寬比,如圖所示:
顯而易見,Image1高度為h1, 寬度為w ,依據 y / x = h1 / w , 計算出 h1 = (w * y) / x
pytorch官方文檔說明:
?
現在通過一個案例進行介紹:
代碼:
import torchvision.transforms import PIL.Image as Image import torchvision.transforms#讀入圖片 image=Image.open("/home/alisa/PycharmProjects/attack/target_attack/1/train_target.png") print(image.size, image.format, image.mode)#生成一個CenterCrop類的對象,用來將圖片從中心裁剪成224*224 crop_obj = torchvision.transforms.CenterCrop((224, 224)) image = crop_obj(image) #將裁剪之后的圖片保存下來 image.save("/home/alisa/PycharmProjects/attack/target_attack/1/train_target2.png", format='PNG')效果:
總結
以上是生活随笔為你收集整理的CenterCrop图像裁剪原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面试官问:跨域请求如何携带cookie?
- 下一篇: 如何使用 Node 后端创建 React