【OpenCV-Python】getWindowImageRect(画像表示領域の取得)

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

 

getWindowImageRect()関数で取得する領域の情報は、画像表示領域の位置は、デスクトップのx, y座標となります。

 

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() 

 

参照ページ

https://docs.opencv.org/4.x/d7/dfc/group__highgui.html#ga73b55e9851b5691f6a6a4a4e6c57258e

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください