RGB转换为LAB后从图像中提取L*分量

3

我希望将RGB图像转换为LAB(也称为CIE L* a* b*)颜色空间,并提取L*分量。

以下是我的代码:

from skimage import io, color
from scipy import misc
import matplotlib.pyplot as plt
import cv2

img = misc.imread("/Users/zheyuanlin/Desktop/opencv_tests/parrots.png", mode='RGB')
img_resized = misc.imresize(img, (256, 256), 'bilinear') # resized to 256x256

img_cielab = color.rgb2lab(img_resized, illuminant='D50')

# Rescale due to range of LAB values being L (0-100), a (-128-127), b (-128-127)
cielab_scaled = (img_cielab + [0, 128, 128]) / [100, 255, 255] 

cie_l, cie_a, cie_b = cv2.split(cielab_scaled)


""" Display the image """
plt.imshow(cie_l)
plt.show()

这是生成的图像: 这是plt显示的图像 这里是一篇在谷歌上找到的研究论文中相同图像的L*分量示例: 在此输入图片描述 我不知道为什么我的图像看起来如此绿色,有人知道我的代码问题吗?谢谢!
1个回答

2
您显示的图像与论文中的图像完全相同。但是,pyplot具有默认的颜色映射,可以将蓝色、绿色和黄色添加到灰度图像中。
要更改使用的颜色映射,请使用{{link1:set_cmap函数}}:
plt.set_cmap('gray')

祝福您的灵魂,亲切的先生。 - Daniel

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