2014-11-18 11 views
1

다음 코드 내에서 가능한 모든 RGB 색상을 포함하는 4096 * 4096 픽셀을 사용합니다 (같은 픽셀을 두 번 나타내지는 않습니다. 여기 http://allrgb.com/starry-night에서 찾을 수 있습니다) 그런 다음 RGB 값을cv.COLOR_BGR2LAB이 잘못된 범위

원 화상은 R [0255], G [0255], B [0,255을 UINT8 입력 한 경우 : LAB 값 및 I는 다음과 채널

import cv2 as cv 
import numpy as np 

im=cv.imread('allrgb.png') 


im=im.astype(np.uint8) 

colors_lab=cv.cvtColor(im,cv.COLOR_BGR2LAB) 

m=np.amin(colors_lab[...,...,0])  

결과를 각각의 범위를 확인 L [0,255], A [42,226], B [20,223]

원본 이미지의 형식이 float32이고 R [0,1], G [0,1], B [0,1]이 L [0,100], A [-86.1813,98.2351], B [-107.862,94.4758] 어떤 경우

는 랩 범위는 오픈 CV 문서

에 의해 어떻게 설명하는 어떤 생각을 주어진 일을 예상하지 않습니다?

답변

1

OpenCV에서 반환 된 LAB 값은 0-100, 0-255, 0-255 범위를 벗어나지 않습니다. 그러나 LAB 색 공간의 색역은 RGB 색 공간 중 하나를 초과합니다. 예를 들어 LAB에 대한 위키 백과 문서의 두 번째 단락을 참조하십시오.

따라서 RGB/BGR에서 LAB로 변환하면 LAB에 RGB로 표현할 수없는 색상이 포함되므로 전체 LAB 범위를 얻지 못합니다.