OpenCV で HSV (色相、彩度、値) カラー パレットのスライダーを作成するには、2 つの異なる関数を使用します。これらの関数は、cv2.reateTrackbar() および cv2.getTrackbarPos() です。
スライダーの作成には cv2.reateTrackbar() 関数を使用し、スライダーへのアクセスには cv2.getTrackbarPos() 関数を使用します。選択したスライダー位置の値。
これら 2 つの関数を使用して、 H、S、V 色を含むスライダーと、選択した色を表示するカラー ウィンドウを作成します。スライダーの位置を変更することで、特定の色の値を選択できます。
H の範囲は 0 から 179 ですが、S と # の範囲は##V は 0 から 255 の間です。
cv2.createTrackbar(trackbar_name, window_name, default_value, max_value, callback_func) cv2.getTrackbarPos(trackbar_name, window_name)
-これはスライダー バーの名前です。この名前は、スライダーの位置値にアクセスするために使用されます。
-スライダーに接続されているウィンドウの名前です。
-スライダーのデフォルト値を設定します。
-スライダーの最大値。
-スライダーの値が変化したときに実行される関数。
であるスライダーを作成するには、次の手順に従います。 最初のステップは、必要なライブラリをインポートすることです。必要な Python ライブラリは
OpenCV と NumPy です。必ずインストールしてください。 import cv2
import numpy as np
次に、
を定義します。スライダーの位置をデフォルトのパラメーターとして受け取ります。この関数は何もしないように定義します。 def nothing(x):
pass
黒のイメージを定義し、
という名前のウィンドウを作成します。トラック バーと色がこのウィンドウに表示されます。 img = np.zeros((300,650,3), np.uint8)
window_name = 'Trackbar Color Palette'
cv2.namedWindow(window_name, cv2.WINDOW_AUTOSIZE)
5 つのパラメータすべてを渡して、色変更スライダーを作成します。
cv2.createTrackbar('H',window_name,0,179,nothing) cv2.createTrackbar('S',window_name,0,255,nothing) cv2.createTrackbar('V',window_name,0,255,nothing)
3 つの
HSV カラーすべての現在のスライダーの位置を取得します。 h = cv2.getTrackbarPos('H',window_name)
s = cv2.getTrackbarPos('S',window_name)
v = cv2.getTrackbarPos('V',window_name)
カラー イメージ ウィンドウを上記の色で更新します。そして画像の色を
に変換します。 img[:] = [h,s,v]
img = cv2.cvtColor(img, cv2.COLOR_HSV2BGR)
選択したトラック バーの値の色をカラー イメージ ウィンドウに表示します。
while(True): cv2.imshow(window_name,img) k = cv2.waitKey(1) & 0xFF if k == ord('q'): break
例 1
# import required libraries import cv2 import numpy as np def nothing(x): pass # Create a black image, a window img = np.zeros((300,650,3), np.uint8) img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) window_name = 'HSV Color Palette' cv2.namedWindow(window_name, cv2.WINDOW_AUTOSIZE) # create trackbars for color change cv2.createTrackbar('H',window_name,0,179,nothing) cv2.createTrackbar('S',window_name,0,255,nothing) cv2.createTrackbar('V',window_name,0,255,nothing) while(True): cv2.imshow(window_name,img) key = cv2.waitKey(1) & 0xFF if key == ord('q'): break # get current positions of four trackbars h = cv2.getTrackbarPos('H',window_name) s = cv2.getTrackbarPos('S',window_name) v = cv2.getTrackbarPos('V',window_name) img[:] = [h,s,v] img = cv2.cvtColor(img, cv2.COLOR_HSV2BGR) cv2.destroyAllWindows()
出力
」ボタンを押します。
デフォルトでは、3 つのスライダーの値は
0、ウィンドウの色は黒です。スライダーをスライドすると、カラー ウィンドウに対応する色が表示されます。 例 2
例 2
スイッチ ボタンが含まれています。 4 つのスライダーを作成しました。3 つは HSV カラー 用、1 つは switch ボタン用です。 スイッチ ボタン
をオンにすると、カラー画像の色のみが表示されます。スライダーをスライドすると、カラー ウィンドウに対応するカラーが表示されます。import cv2 import numpy as np def nothing(x): pass # Create a black image, a window img = np.zeros((300,650,3), np.uint8) img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) window_name = 'HSV Color Palette' cv2.namedWindow(window_name, cv2.WINDOW_AUTOSIZE) # create trackbars for color change cv2.createTrackbar('H',window_name,0,179,nothing) cv2.createTrackbar('S',window_name,0,255,nothing) cv2.createTrackbar('V',window_name,0,255,nothing) # create switch for ON/OFF functionality # switch = '0 : OFF \n1 : ON' cv2.createTrackbar('switch', window_name,0,1,nothing) while(True): cv2.imshow(window_name,img) key = cv2.waitKey(1) & 0xFF if key == ord('q'): break # get current positions of four trackbars h = cv2.getTrackbarPos('H',window_name) s = cv2.getTrackbarPos('S',window_name) v = cv2.getTrackbarPos('V',window_name) sw = cv2.getTrackbarPos('switch',window_name) if sw == 0: img[:] = 0 else: img[:] = [h,s,v] img = cv2.cvtColor(img, cv2.COLOR_HSV2BGR) cv2.destroyAllWindows()出力上記のプログラムを実行すると、次の出力ウィンドウが表示されます。出力ウィンドウを閉じるには、「q」ボタンを押します。
デフォルトでは、すべてのスライダーの値は
0です。窓の色は黒です。スイッチをオンにして (1
として選択)、HSV カラー スライダーを希望の値までスライドすると、ウィンドウの色は設定値に対応します。明るい色の場合は、S および V スライダーの最大値を選択し、H スライダーをスライドさせます。 スイッチがオフの場合、スライダーをスライドしても何も変わりません。スイッチがオフ (0 に設定) のときにスライダーをスライドしても、ウィンドウの色は変わりません。 。そのまま(つまり黒色)のままになります。
以上がOpenCV Pythonを使用してHSVカラーパレットのスライダーを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。