PythonのOpenCVライブラリを使用して画像処理を行う際、ウィンドウサイズを自由に調整できると便利です。
特に、画像を表示するウィンドウがデフォルトのサイズだと、画像が見切れてしまうことがあります。
そこで、本記事では、PythonのOpenCVでウィンドウサイズをカスタマイズする方法を初心者向けにわかりやすく解説します。
それではさっそく見ていきましょう。
OpenCVでウィンドウを作成する方法
まずは、OpenCVでウィンドウを表示する基本的な方法を確認しましょう。
通常、OpenCVではcv2.imshow()
関数を使用して画像を表示しますが、このとき、ウィンドウサイズは画像のサイズに依存します。
✓『OpenCVによる画像処理入門』で基礎の確認から応用した使い方まで学ぶことができます。本記事とあわせて、ぜひ、チェックしてください。
基本的なコード例
import cv2 # 画像を読み込む image = cv2.imread('sample.png') # 画像をウィンドウに表示 cv2.imshow('Sample Image', image) # キー入力待ち cv2.waitKey(0) # ウィンドウを閉じる cv2.destroyAllWindows()
このコードは指定した画像をウィンドウに表示しますが、ウィンドウサイズは画像サイズに基づいて自動的に設定されます。
ウィンドウサイズを変更する方法
次に、ウィンドウサイズをカスタマイズする方法を紹介します。
OpenCVでは、cv2.namedWindow()
関数とcv2.resizeWindow()
関数を使用してウィンドウのサイズを変更できます。
cv2.namedWindow()
とcv2.resizeWindow()
を使用する
cv2.namedWindow()
関数を使用してウィンドウを作成し、その後でcv2.resizeWindow()
関数を使ってウィンドウサイズを変更します。
以下のコード例で確認しましょう。
import cv2 # 画像を読み込む image = cv2.imread('sample.png') # ウィンドウを作成 cv2.namedWindow('Sample Image', cv2.WINDOW_NORMAL) # ウィンドウサイズを変更 cv2.resizeWindow('Sample Image', 800, 600) # 画像をウィンドウに表示 cv2.imshow('Sample Image', image) # キー入力待ち cv2.waitKey(0) # ウィンドウを閉じる cv2.destroyAllWindows()
このコードでは、ウィンドウサイズが800x600に設定され、画像がそのウィンドウサイズに合わせて表示されます。
ウィンドウをリサイズ可能にする
OpenCVでは、ウィンドウのサイズを手動で変更できるオプションも用意されています。
cv2.namedWindow()
関数の第二引数にcv2.WINDOW_NORMAL
を指定することで、ウィンドウのリサイズが可能になります。
リサイズ可能なウィンドウのコード例
import cv2 # 画像を読み込む image = cv2.imread('sample.png') # リサイズ可能なウィンドウを作成 cv2.namedWindow('Sample Image', cv2.WINDOW_NORMAL) # ウィンドウサイズを変更 cv2.resizeWindow('Sample Image', 1024, 768) # 画像をウィンドウに表示 cv2.imshow('Sample Image', image) # キー入力待ち cv2.waitKey(0) # ウィンドウを閉じる cv2.destroyAllWindows()
このコードでは、初期ウィンドウサイズを1024x768に設定していますが、ユーザーはマウスでウィンドウサイズを自由に変更できます。
画像をウィンドウサイズに合わせてリサイズする方法
ウィンドウサイズに合わせて画像をリサイズしたい場合は、cv2.resize()
関数を使用します。
次のコード例では、画像をウィンドウサイズにフィットさせて表示します。
画像をウィンドウサイズにフィットさせるコード例
import cv2 # 画像を読み込む image = cv2.imread('sample.png') # リサイズ可能なウィンドウを作成 cv2.namedWindow('Sample Image', cv2.WINDOW_NORMAL) # 画像をウィンドウサイズにリサイズ resized_image = cv2.resize(image, (800, 600)) # 画像をウィンドウに表示 cv2.imshow('Sample Image', resized_image) # キー入力待ち cv2.waitKey(0) # ウィンドウを閉じる cv2.destroyAllWindows()
このコードは、画像を指定した800x600のサイズにリサイズし、その後でウィンドウに表示します。
関連・おすすめ書籍
まとめ
この記事では、cv2.namedWindow()
やcv2.resizeWindow()
を使用して、ウィンドウサイズを自由に変更する方法を解説しました。
さらに、リサイズ可能なウィンドウの作成や画像をウィンドウサイズにフィットさせる方法も紹介しました。
これらのテクニックを駆使して、柔軟な画像表示を行いましょう。