您好,登錄后才能下訂單哦!
resize()函數怎么在Python項目中使用?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
改變圖像大小意味著改變尺寸,無論是單獨的高或寬,還是兩者。也可以按比例調整圖像大小。
這里將介紹resize()函數的語法及實例。
語法
函數原型
cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])
參數:
參數 | 描述 |
src | 【必需】原圖像 |
dsize | 【必需】輸出圖像所需大小 |
fx | 【可選】沿水平軸的比例因子 |
fy | 【可選】沿垂直軸的比例因子 |
interpolation | 【可選】插值方式 |
【可選】插值方式
其中插值方式有很多種:
cv.INTER_NEAREST | 最近鄰插值 |
cv.INTER_LINEAR | 雙線性插值 |
cv.INTER_CUBIC | 雙線性插值 |
cv.INTER_AREA | 使用像素區域關系重新采樣。它可能是圖像抽取的首選方法,因為它可以提供無莫爾條紋的結果。但是當圖像被縮放時,它類似于INTER_NEAREST方法。 |
通常的,縮小使用cv.INTER_AREA,放縮使用cv.INTER_CUBIC(較慢)和cv.INTER_LINEAR(較快效果也不錯)。默認情況下,所有的放縮都使用cv.INTER_LINEAR。
例子
保留高寬比
以下是我們將在其上進行實驗的尺寸(149,200,4)(高度,寬度,通道數)的原始圖像:
import cv2 img = cv2.imread('./Pictures/python.png', cv2.IMREAD_UNCHANGED) print('Original Dimensions : ',img.shape) scale_percent = 60 # percent of original size width = int(img.shape[1] * scale_percent / 100) height = int(img.shape[0] * scale_percent / 100) dim = (width, height) # resize image resized = cv2.resize(img, dim, interpolation = cv2.INTER_AREA) print('Resized Dimensions : ',resized.shape) cv2.imshow("Resized image", resized) cv2.waitKey(0) cv2.destroyAllWindows()
結果:
Original Dimensions : (149, 200, 4)
Resized Dimensions : (89, 120, 4)
調節scale_percent可以放大或縮小。需要準備shape先高再寬,參數是先寬再高。
還有一種方式,就是使用自帶的參數fx和fy,更加方便。
import cv2 img = cv2.imread("./Pictures/python.png") print('Original Dimensions : ', img.shape) resized = cv2.resize(img, None, fx=0.6, fy=0.6, interpolation=cv2.INTER_AREA) print('Resized Dimensions : ',resized.shape) cv2.imshow("resized_img", resized) cv2.waitKey(0)
不保留高寬比
例如,改變寬度,高度不變:
import cv2 img = cv2.imread("./Pictures/python.png") print('Original Dimensions : ',img.shape) width = 440 height = img.shape[0] # keep original height dim = (width, height) # resize image resized = cv2.resize(img, dim, interpolation = cv2.INTER_AREA) print('Resized Dimensions : ',resized.shape) cv2.imshow("Resized image", resized) cv2.waitKey(0) cv2.destroyAllWindows()
結果:
Original Dimensions : (149, 200, 4)
Resized Dimensions : (149, 440, 4)
指定高和寬
給定高和寬的像數值。
import cv2 img = cv2.imread("./Pictures/python.png") print('Original Dimensions : ',img.shape) width = 350 height = 450 dim = (width, height) # resize image resized = cv2.resize(img, dim, interpolation = cv2.INTER_AREA) print('Resized Dimensions : ',resized.shape) cv2.imshow("Resized image", resized) cv2.waitKey(0) cv2.destroyAllWindows()
結果:
Original Dimensions : (149, 200, 4)
Resized Dimensions : (450, 350, 4)
看完上述內容,你們掌握resize()函數怎么在Python項目中使用的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。