Pythonでいろいろやってみる

Pythonを使った画像処理や機械学習などの簡単なプログラムを載せています。

画像サイズを変更する

やること
  • ファイル名を指定して画像ファイル読み出す
  • 画像サイズを変更
  • 変更後の画像を別ウィンドウで表示する
  • キー入力で表示用ウィンドウを破棄し終了
使った関数
  • cv2.imread : 画像ファイルの読み出し
  • cv2.resize : 画像サイズの変更
  • cv2.imshow : 画像を別ウィンドウに表示する
環境
  • windows10 home
  • Anaconda 3/ jupyter notebook 5.6.0
  • Python 3.7.0
  • OpenCV 4.0.0
準備

画像ファイルはフリー写真素材ぱくたそからダウンロードさせていただき、"cat.jpg"というファイル名で、jupyter notebookファイル(***.ipynb)と同じディレクトリに保存しました。

f:id:T_A_T:20190225222801j:plain
元画像

コード

画像サイズをピクセルで指定する場合。cv2.resizeの引数dsizeを指定する。

import cv2  #OpenCVのインポート

fname = "cat.jpg" #開く画像ファイル名

img = cv2.imread(fname) #画像を読み出しオブジェクトimgに代入。画像サイズ800x533px
img_resize = cv2.resize(img,dsize=(200, 300)) #画像を横200px縦300pxにリサイズしオブジェクトimg_resizeに代入

cv2.imshow("resize",img_resize) #別ウィンドウを開き(ウィンドウ名 "resize")オブジェクトimg_resizeを表示

cv2.waitKey(0) #キー入力待ち
cv2.destroyAllWindows() #ウインドウを閉じる
実行結果

別ウィンドウが開き、横200px縦300pxにリサイズされた画像が表示されます

f:id:T_A_T:20190227225840p:plain
横200px縦300pxにリサイズされた画像

コード

画像サイズを横縦の倍率で指定する場合。cv2.resizeの引数fx,fyを指定する。その場合、dsizeはNoneとする。

import cv2  #OpenCVのインポート

fname = "cat.jpg" #開く画像ファイル名

img = cv2.imread(fname) #画像を読み出しオブジェクトimgに代入。画像サイズ800x533px
img_resize = cv2.resize(img, dsize=None, fx=0.7, fy=0.3) #画像を横0.7倍、縦0.3倍にリサイズしオブジェクトimg_resizeに代入

cv2.imshow("resize",img_resize) #別ウィンドウを開き(ウィンドウ名 "resize")オブジェクトimg_resizeを表示

cv2.waitKey(0) #キー入力待ち
cv2.destroyAllWindows() #ウインドウを閉じる

実行結果

別ウィンドウが開き、横0.7倍、縦0.3倍にリサイズされた画像が表示されます

f:id:T_A_T:20190227231324p:plain
横0.7倍、縦0.3倍にリサイズされた画像

ブログランキングに参加しています

にほんブログ村 IT技術ブログへ
にほんブログ村