OpenCVモジュールを使用して、Pythonで画像を拡大または縮小してみます。
OpenCVモジュールは、Pythonの標準ライブラリではありませんので、事前にインストールする必要があります。
■Python
今回のPythonのバージョンは、「3.8.2」を使用しています。(Windows10)
■画像を用意する
OpenCVモジュールを使用して、Pythonで画像を拡大または縮小を行ってみますが、行う前に拡大または縮小を行う画像を用意します。
今回は「squirrel_sample.jpg」のリスの画像を用意しました。
保存されている場所は「C:\Users\user\test(フォルダパス)」です。
■OpenCVを使用してPythonで画像を拡大または縮小する
画像の用意ができましたので、OpenCVモジュールを使用してPythonで画像を拡大または縮小するスクリプトを書いていきます。まずは画像を拡大してみます。
■画像を拡大する
■コード
import cv2 image = cv2.imread(r'C:\Users\user\test\forest_sample.jpg') scale_up = cv2.pyrUp(image) cv2.imshow('Scale_up',scale_up) cv2.waitKey(0) cv2.destroyAllWindows()
インポートでcv2(OpenCV)モジュールを呼び出して、imread()関数で今回用意した画像を読み込みます。
scale_upという変数を作成し、画像の拡大を行うために、cv2.pyrUp()関数を使います。()内には、今回読み込んだ画像を指定します。
次に画像の拡大を行ったものを、cv2.imshow()関数で表示させます。
■実行
今回のスクリプトを「enlarge_image.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行してみると、ウインドウが表示され、今回用意された画像が拡大されて表示されます。元画像と比較しても拡大されて、すべてが表示できなくなってしまっていることが分かります。なお、cv2.pyrUp()関数を使うと、サイズが2倍になるか、画像のピクセル数が元画像の2倍になります。2倍になることにより、元画像よりもサイズが大きくなるため、品質が低下します。
■画像を縮小する
画像を拡大することができましたので、次に画像を縮小するスクリプトを書いていきます。
■コード
import cv2 image = cv2.imread(r'C:\Users\user\test\forest_sample.jpg') scale_down = cv2.pyrDown(image) cv2.imshow('Scale_down',image) cv2.waitKey(0) cv2.destroyAllWindows()
画像を拡大するスクリプトを書いた時と先ほど変わりません。
今回はscale_downという変数を作成し、画像の縮小を行うために、cv2.pyrDown()関数を使います。()内には読み込んだ画像を指定します。
cv2.imshow()関数で縮小した画像を表示させてみます。
■実行
今回のスクリプトを、「shrink_image.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行してみると、ウインドウが表示され今回用意した画像が縮小されて表示されます。元画像と比較しても、画像が縮小されていることが分かります。
コメント