\

OpenCVのnameWindow()imshow()で表示されたウィンドウの画像表示領域の情報(位置、幅、高さ)を取得するには、getWindowImageRect()関数を用います。

getWindowImageRect()関数の構文

getWindowImageRect(winname) -> retval

ここで、
– 引数 winname は画像表示領域を取得するウィンドウのタイトル名です。
– 戻り値 retval は画像の表示領域の情報です。画像表示領域の左上の座標を (x, y)、画像表示領域のサイズを (width, height)とすると、 (x, y, width, height) となるタプルで取得します。

サンプルプログラム

以下に、ウィンドウの画像部分をマウスの左クリックすると、画像の表示領域の情報をコンソールに表示するサンプルプログラムを示します。

import cv2
import numpy as np

WINDOW_TITLE = 'Image Window'

def onMouse(event, x, y, flags, params):
    '''マウスのコールバック関数'''
    if event == cv2.EVENT_LBUTTONDOWN: # 左ボタンがクリックされたとき、領域情報の表示
        rect = cv2.getWindowImageRect(WINDOW_TITLE)
        print(f"rect:{rect}")

# テスト画像の生成
image = np.zeros((30, 50, 3), dtype = np.uint8)
cv2.circle(image, (25, 15), 10, (0, 255, 0), -1, cv2.LINE_AA)

cv2.namedWindow(WINDOW_TITLE, cv2.WINDOW_NORMAL)
cv2.imshow(WINDOW_TITLE, image)

# コールバック関数の登録
cv2.setMouseCallback(WINDOW_TITLE, onMouse, "Image")

cv2.waitKey()

このプログラムでは、ウィンドウの画像部分をマウスの左クリックすると、画像の表示領域の情報がコンソールに表示されます。

以上がPythonとOpenCVを用いてウィンドウの画像表示領域を取得する方法になります。この情報がPythonとOpenCVの使用に役立つことを願っています。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です