2017-10-24 1 views

답변

0

단순히 이미지의 색 공간을 변경해야합니다. 각 구성 요소에 올바른 범위를 지정했는지 확인하십시오. 실습 예제는 다음과 같습니다. a, b의 범위는 -127에서 127 사이이므로 127을 뺍니다.

import cv2 
import numpy as np 

def nothing(x): 
    pass 

img = np.zeros((300,512,3), np.uint8) 
cv2.namedWindow('image') 

cv2.createTrackbar('L','image',0,100,nothing) 
cv2.createTrackbar('A','image',0,255,nothing) 
cv2.createTrackbar('B','image',0,255,nothing) 

while(1): 

    cv2.imshow('image',img) 
    k = cv2.waitKey(1) & 0xFF 
    if k == 27: 
     break 

    img= cv2.cvtColor(img, cv2.COLOR_BGR2LAB) 
    l = cv2.getTrackbarPos('L','image') 
    a = cv2.getTrackbarPos('A','image')-127 
    b = cv2.getTrackbarPos('B','image')-127 
    img[:] = [l,a,b] 





cv2.destroyAllWindows() 
+0

그래서 YCrCb의 올바른 범위는 무엇입니까? – Kimhan

0

트랙바 값을 변경하는 대신 랩 값을 변경할 수 있습니다. 코드 뒤에이 명령을 추가하고 코드를 수정하십시오. imshow에서 newimg를 사용할 수 있습니다.

newimg= cv2.cvtColor(img, cv2.COLOR_Lab2BGR) 
+0

그러나 강사가 트랙볼을 다른 색상 채널로 변경하라고했습니다. RGB 옆에 어떤 컬러 채널을 사용해야하는지 제안 해 주시겠습니까? – Kimhan

관련 문제