PythonとOpenCVで画像処理⑤【トラックバー】

OpenCVのバージョンは2.4.1です

【トラックバーの生成】

  • createTrackbar関数を使えばトラックバーを生成できる
  • cv2.createTrackbar(トラックバー名, ウィンドウ名, 最小値, 最大値, 関数名)
  • トラックバーの値を変更したとき、指定した関数が実行される
    • 引数に変更した後の値が渡される

【トラックバーの値取得】

  • getTrackbarPos関数を使えばトラックバーの値を取得できる
  • cv2.getTrackbarPos(トラックバー名, ウィンドウ名)

RGBで色を指定するトラックバーを生成】

# -*- coding: utf-8 -*-
import cv2

# トラックバーの値を変更する度にRGBを出力する
def changeColor(val):
    r = cv2.getTrackbarPos("R", "img")
    g = cv2.getTrackbarPos("G", "img")
    b = cv2.getTrackbarPos("B", "img")
    print [r, g, b]

# 画像の読み込み
img = cv2.imread("test.jpg", 1)
# ウィンドウのサイズを変更可能にする
cv2.namedWindow("img", cv2.WINDOW_NORMAL)

# トラックバーの生成
cv2.createTrackbar("R", "img", 0, 255, changeColor)
cv2.createTrackbar("G", "img", 0, 255, changeColor)
cv2.createTrackbar("B", "img", 0, 255, changeColor)

# 「Q」が押されるまで画像を表示する
while (True):
    cv2.imshow("img", img)
    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

cv2.destroyAllWindows()


【生成されたトラックバー】
f:id:rkr0314:20160124213718p:plain


【参考】
Trackbar as the Color Palette — OpenCV-Python Tutorials 1 documentation