2017-09-26 169 views
2

我试图使用skimage将RGB图像转换为LAB色彩空间,但结果似乎只是噪音。使用opencv的相同操作似乎可行。使用scikit-image将RGB图像转换为LAB

cat = io.imread('https://poopr.org/images/2017/08/22/91615172-find-a-lump-on-cats-skin-632x475.jpg') 
cat_sk_image_lab = skimage.color.rgb2lab(cat) 
plt.imshow(cat_sk_image_lab) 
cat_cv_lab = cv2.cvtColor(cat, cv2.COLOR_BGR2LAB) 
plt.imshow(cat_cv_lab) 

enter image description here

+0

在这个问题中,我感到困惑的是:如果'cat'是一个RGB图像,同时使用'io.imread'和'skimage.color.rgb2lab'似乎表明,为什么应用'cv2.cvtColor '用'COLOR_BGR2LAB'选项?为什么不用'COLOR_RGB2LAB'?我的错误是 – Eskapp

+1

。它应该是RGB2LAB – waspinator

回答

4

的显示的问题是由于Lab值它们的范围:A(-128-127)L(0-100),B(-128-127)。这应该记录在案 - our mistake

要显示实验室图片,可以重新调整各种频带至所需范围(0-1):

lab = skimage.color.rgb2lab(cat) 
lab_scaled = (lab + [0, 128, 128])/[100, 255, 255] 

LAB Cat

OpenCV docs描述了做的正是此转换为您,如果使用8位图像。