使用scikit-image将RGB图像转换为LAB

3

我正在尝试使用skimage将RGB图像转换为LAB颜色空间,但结果似乎只是噪音。同样的操作使用opencv似乎可以正常工作。

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


我对这个问题中的以下内容感到困惑:如果cat是一个RGB图像,正如io.imreadskimage.color.rgb2lab的使用所暗示的那样,为什么要使用选项COLOR_BGR2LAB来应用cv2.cvtColor?为什么不使用COLOR_RGB2LAB呢? - Eskapp
1
我的错误。应该是RGB2LAB。 - waspinator
1个回答

8
显示问题是由于Lab值的范围引起的,分别是:L(0-100),a(-128-127),b(-128-127)。这确实应该有文档记录--我们的错误
为了显示Lab图片,您可以将各个波段重新缩放到所需的范围(0-1):
lab = skimage.color.rgb2lab(cat)
lab_scaled = (lab + [0, 128, 128]) / [100, 255, 255]

LAB Cat

OpenCV文档为您描述了如何进行此转换,如果使用8位图像。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接