基礎ユニット2(イメージメディア) 第9回(2020/12/03)

関連サイトと資料

resize関数について

resize関数を用いて画像を拡大・縮小する方法としては、大きく分けると2種類存在する。 まず、1つ目は前回紹介したように、拡大・縮小後の幅と高さを指定する方法である。

resize1.py
import cv2
  
target = 'sample1.jpg'
org_img = cv2.imread(target, cv2.IMREAD_COLOR)
  
shrinked_img = cv2.resize(org_img, (64,48))
enlarged_img = cv2.resize(org_img, (800,600), cv2.INTER_CUBIC)
  
cv2.imwrite('sample1_shrinked.png', shrinked_img)
cv2.imwrite('sample1_enlarged.png', enlarged_img)
  
cv2.imshow('Original Image', org_img)
cv2.imshow('Shrinked Image', shrinked_img)
cv2.imshow('Enlarged Image', enlarged_img)
   
cv2.waitKey(0)
cv2.destroyAllWindows()
    

sample1.jpg

sample1_shrinked.png

sample1_enlarged.png

もう一つは、水平方向および垂直方向の拡大・縮小率を実数で指定する方法である。 下記にプログラム例を示すが、第二引数がNoneとなるので注意してほしい。

resize2.py
import cv2
  
target = 'sample1.jpg'
org_img = cv2.imread(target, cv2.IMREAD_COLOR)
  
shrinked_img = cv2.resize(org_img, None, fx=0.1, fy=0.1)
enlarged_img = cv2.resize(org_img, None, fx=1.25, fy=1.25, interpolation=cv2.INTER_CUBIC)
  
cv2.imwrite('sample1_shrinked2.png', shrinked_img)
cv2.imwrite('sample1_enlarged2.png', enlarged_img)
  
cv2.imshow('Original Image', org_img)
cv2.imshow('Shrinked Image', shrinked_img)
cv2.imshow('Enlarged Image', enlarged_img)
  
cv2.waitKey(0)
cv2.destroyAllWindows()
    

sample1_shrinked2.png

sample1_enlarged2.png