ホームページ  >  記事  >  バックエンド開発  >  OpenCV Pythonを使用してHSVカラーパレットのスライダーを作成するにはどうすればよいですか?

OpenCV Pythonを使用してHSVカラーパレットのスライダーを作成するにはどうすればよいですか?

WBOY
WBOY転載
2023-08-18 13:53:041559ブラウズ

OpenCV で HSV (色相、彩度、値) カラー パレットのスライダーを作成するには、2 つの異なる関数を使用します。これらの関数は、cv2.reateTrackbar() および cv2.getTrackbarPos() です。

  • スライダーの作成には cv2.reateTrackbar() 関数を使用し、スライダーへのアクセスには cv2.getTrackbarPos() 関数を使用します。選択したスライダー位置の値。

  • これら 2 つの関数を使用して、 H、S、V 色を含むスライダーと、選択した色を表示するカラー ウィンドウを作成します。スライダーの位置を変更することで、特定の色の値を選択できます。

  • H の範囲は 0 から 179 ですが、S と # の範囲は##V0 から 255 の間です。

構文

cv2.createTrackbar(trackbar_name, window_name, default_value, max_value, callback_func)
cv2.getTrackbarPos(trackbar_name, window_name)

パラメータ:

  • ##trackbar_name

    -これはスライダー バーの名前です。この名前は、スライダーの位置値にアクセスするために使用されます。

  • window_name

    -スライダーに接続されているウィンドウの名前です。

  • default_value

    -スライダーのデフォルト値を設定します。

  • max_value

    -スライダーの最大値。

  • callback_func

    -スライダーの値が変化したときに実行される関数。

  • 手順

HSV カラー パレット

であるスライダーを作成するには、次の手順に従います。 最初のステップは、必要なライブラリをインポートすることです。必要な Python ライブラリは

OpenCV

NumPy です。必ずインストールしてください。

import cv2
import numpy as np
次に、

コールバック関数

を定義します。スライダーの位置をデフォルトのパラメーターとして受け取ります。この関数は何もしないように定義します。

def nothing(x):
   pass
黒のイメージを定義し、

HSV カラー パレット

という名前のウィンドウを作成します。トラック バーと色がこのウィンドウに表示されます。

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)
カラー イメージ ウィンドウを上記の色で更新します。そして画像の色を

BGR

に変換します。

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

この Python プログラムでは、カラー パレットとしてウィンドウを作成します。 R、G、B カラーを制御する 3 つのスライダーを作成しました。スライダーをスライドすると、カラー ウィンドウに対応するカラーが表示されます。

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

出力

上記のプログラムを実行すると、次の出力ウィンドウが表示されます。出力ウィンドウを閉じるには、「

q

」ボタンを押します。

OpenCV Pythonを使用してHSVカラーパレットのスライダーを作成するにはどうすればよいですか?デフォルトでは、3 つのスライダーの値は

0

、ウィンドウの色は黒です。スライダーをスライドすると、カラー ウィンドウに対応する色が表示されます。 例 2

の中国語訳は次のとおりです。

例 2

このプログラムでは、ウィンドウを

HSV# # として作成します。 # カラー パレット。

スイッチ ボタンが含まれています。 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

です。窓の色は黒です。スイッチをオンにして (OpenCV Pythonを使用してHSVカラーパレットのスライダーを作成するにはどうすればよいですか?1

として選択)、

HSV カラー スライダーを希望の値までスライドすると、ウィンドウの色は設定値に対応します。明るい色の場合は、S および V スライダーの最大値を選択し、H スライダーをスライドさせます。 スイッチがオフの場合、スライダーをスライドしても何も変わりません。スイッチがオフ (0 に設定) のときにスライダーをスライドしても、ウィンドウの色は変わりません。 。そのまま(つまり黒色)のままになります。

以上がOpenCV Pythonを使用してHSVカラーパレットのスライダーを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。