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

时间:2018-06-04 20:34:26

标签: python image image-processing scipy scikit-image

我正在尝试拍摄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()

这是产生的图像: This is the image shown by plt

以下是我在谷歌上发现的研究论文中同一图像的L *组件的示例: enter image description here

我不知道为什么我看起来如此绿色,是否有人知道我的代码存在问题?谢谢!

1 个答案:

答案 0 :(得分:2)

您显示的图像与纸张图像相同。但是pyplot有一个默认的颜色图,可以在灰度图像上添加蓝色,绿色和黄色。

要更改使用的颜色映射,请使用the set_cmap function

plt.set_cmap('gray')