python opencv resize函数_Python OpenCV中的resize()函数的使用
改變圖像大小意味著改變尺寸,無論是單獨的高或寬,還是兩者。也可以按比例調整圖像大小。
這里將介紹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)
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持找一找教程網。
總結
以上是生活随笔為你收集整理的python opencv resize函数_Python OpenCV中的resize()函数的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 字节缓冲_Java字节缓冲流原
- 下一篇: java简单工厂模式_Java 简单工厂