OpenCVのGUIで出来る事は少ないのですが、そのうちの一つのトラックバーの表示です。
トラックバーを使うと、二値化などのしきい値の設定に使うと便利です。
トラックバーの使用例
二値化のしきい値にトラックバーを使用
サンプルコード
import cv2
# ウィンドウのタイトル
window_title = "Trackbar sample"
# コールバック関数(トラックバーが変更されたときに呼ばれる関数)
def on_trackbar(val):
if img is not None:
# 二値化
ret, dst = cv2.threshold(img, val, 255, cv2.THRESH_BINARY)
# 画像の表示
cv2.imshow(window_title, dst)
# ウィンドウの作成
cv2.namedWindow(window_title, cv2.WINDOW_NORMAL)
# トラックバーの作成
cv2.createTrackbar(
"Threshold", # トラックバーの名前
window_title , # トラックバーを表示するウィンドウのタイトル
127, # 初期値
255, # 最大値(最小値は0で固定)
on_trackbar # コールバック関数
)
# 画像の読込
img = cv2.imread("Text.bmp")
# トラックバーの値を取得
track_value = cv2.getTrackbarPos("Threshold", window_title)
# 最初の1回目の処理を取得した値で実行
on_trackbar(track_value)
# キー入力待ち
cv2.waitKey()
createTrackbar()関数
ウィンドウにトラックバーを追加します。
createTrackbar(trackbarName, windowName, value, count, onChange)
引数 | 説明 |
trackbarName | トラックバーの名前 この文字がトラックバーの左側に表示されます。 |
windowName | トラックバーを追加するウィンドウの名前 |
value | トラックバーの初期値 |
count | トラックバーの最大値 (最小値は設定できず、常に0となります) |
onChange | コールバック関数 トラックバーが変更された時に呼び出す関数を指定します。 |
getTrackbarPos()関数
トラックバーの値を取得します。
getTrackbarPos(trackbarname, winname)
引数 | 説明 |
trackbarName | トラックバーの名前 この文字がトラックバーの左側に表示されます。 |
windowName | トラックバーを追加するウィンドウの名前 |
戻り値 | トラックバーの値 |
setTrackbarPos()関数
トラックバーの値を設定します。
値を設定すると、コールバック関数も呼び出されます。
setTrackbarPos(trackbarname, winname, pos)
引数 | 説明 |
trackbarName | トラックバーの名前 この文字がトラックバーの左側に表示されます。 |
windowName | トラックバーを追加するウィンドウの名前 |
pos | 設定するトラックバーの値 |
参考
https://docs.opencv.org/3.4/da/d6a/tutorial_trackbar.html
関連記事
OpenCVのGUIで出来る事は少ないので、ボタンの表示などをしたい場合は、Tkinterなど別のGUIを使う事をおススメします。