2014-11-15 3 views
0

BGR에서 LAB로 이미지를 변환 할 때 L 구성 요소가 이미지의 회색 음영 구성 요소를 나타내는 것으로 알고 있습니다. 그러나 BGR에서 회색조로 변환 할 때 예상 값이 일치하지 않습니다. 예를 들어,파이썬 OpenCV Colorspace LAB와 그레이 스케일의 차이점

 img1 = cv2.cvtColor(img, cv2.COLOR_BGR2LAB) 
     print img1[0][0] 
     img2 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
     print img2[0][0] 

LAB 내 이미지의 제 1 픽셀은 두 번째 (159)를 생산하는 동안 [168 (133) 162] I들은 사실에 의해 강화되는 (든 동일해야한다는 인상했다 생산하고있을 COLOR_LAB2GRAY 상수 없음).

누군가가 왜 그런지 설명하고 설명 할 수 있습니까? LAB에 대한 이해가 잘못 되었습니까? 아니면 코드에서 뭔가를 잘못 사용하고 있습니까?

실제로 다른 경우 사용하는 것이 더 좋습니다. 나머지 응용 프로그램은 LAB 모델에서 이미지를 조작하므로 L- 구성 요소를 회색조 기준선으로 사용하려고하지만 BGR2GRAY 시나리오와 달리 일부 영역이 가벼워 보이기 쉽습니다. 생각?

답변

2

그레이 = 0.299R + 0.587G + 0.114B

하지만 LAB의 L 채널에 RGB의 전환은 다르다. (비선형 함수)

정확한 변환은 here입니다.

그리고 LAB 변환의 비선형 성은 질문의 마지막 부분을 설명합니다.

관련 문제