【问题标题】:Extract L* component from image after converting from RGB to LABRGB转LAB后从图像中提取L*分量
【发布时间】:2018-11-14 05:57:49
【问题描述】:

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

这是生成的图像:

这是我在 google 上找到的一篇研究论文中同一图像的 L* 组件的示例:

我不知道为什么我的看起来这么绿,有人知道我的代码有问题吗?谢谢!

【问题讨论】:

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


    【解决方案1】:

    您显示的图像与论文中的图像相同。但是 pyplot 有一个默认的颜色图,可以为灰度图像添加蓝色、绿色和黄色。

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

    plt.set_cmap('gray')
    

    【讨论】:

    • 保佑你的灵魂善良的先生
    猜你喜欢
    • 2012-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-16
    • 2014-02-08
    • 1970-01-01
    • 2018-06-07
    相关资源
    最近更新 更多