OpenCV에서 HSV(색조, 채도 및 명도) 색상 팔레트에 대한 슬라이더를 생성하기 위해 두 가지 다른 기능을 사용합니다. 이러한 함수는 cv2.reateTrackbar() 및 cv2.getTrackbarPos()입니다.
cv2.reateTrackbar() 함수를 사용하고, 선택한 슬라이더 위치의 값에 액세스하려면 cv2.getTrackbarPos() 함수를 사용하세요.
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)
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 Color Palette라는 창을 만듭니다. 트랙 바와 색상이 이 창에 나타납니다.
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)세 가지
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 색상을 제어하기 위해 세 개의 슬라이더를 만들었습니다. 슬라이더를 밀면 색상 창에 해당 색상이 표시됩니다.
# 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()Output위 프로그램을 실행하면 아래와 같은 출력창이 뜹니다. 출력창을 닫으려면 '
q' 버튼을 누르세요.
기본적으로 세 개의 슬라이더 값은0이며, 창 색상은 검은색입니다. 슬라이더를 밀면 색상 창에 해당 색상이 표시됩니다.
예제 2의 중국어 번역은 다음과 같습니다. 예제 2 이 프로그램에서는switch 버튼이 포함된 HSV 색상 팔레트로 창을 만듭니다. 우리는 4개의 슬라이더를 만들었습니다. 3개는 HSV Color용이고 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()Output위 프로그램을 실행하면 아래와 같은 출력창이 뜹니다. 출력창을 닫으려면 '
q' 버튼을 누르세요.
기본적으로 모든 슬라이더의 값은0입니다. 창문의 색상은 검정색입니다. 스위치를 켜고(1로 선택) HSV 색상 슬라이더를 원하는 값으로 슬라이드하면 창의 색상이 설정된 값에 해당합니다. 밝은 색상의 경우 S 및 V 슬라이더의 최대값을 선택하고 H 슬라이더를 밉니다.
스위치가 꺼진 상태에서는 슬라이더를 밀어도 아무런 변화가 없습니다. 스위치가 꺼진 상태(0으로 설정)에서 슬라이더를 밀어도 창 색상은 변하지 않습니다. 그대로 유지됩니다(예: 검은색).위 내용은 OpenCV Python을 사용하여 HSV 색상 팔레트 슬라이더를 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!