【问题标题】:Lab color space quantization in MatlabMatlab中的实验室色彩空间量化
【发布时间】:2015-05-29 01:56:33
【问题描述】:

在 Matlab 中,我已将 RGB 图像转换为 CIE Lab 色彩空间。

Lab = applycform(rgbImage, makecform('srgb2lab'));
L = Lab(:, :, 1);
a = Lab(:, :, 2);
b = Lab(:, :, 3);

如何量化和组合这 3 个通道?

...

为了比较,这是我对 RGB 所做的:

在主程序中

R = rgbImage(:, :, 1);
G = rgbImage(:, :, 2);
B = rgbImage(:, :, 3);

binsR = 4;
binsG = 4;
binsB = 4;

quantR = Quantize(binsR, R, 255);
quantG = Quantize(binsG, G, 255);
quantB = Quantize(binsB, B, 255);

quantColors = (binsB*binsG*quantR) + (binsB+quantG) + quantB;

量化.m

function quant = Quantize(bins, data, maxdata)

quant = data * (bins/maxdata);
quant = floor(quant);
quant(quant >= (bins - 1)) = (bins - 1);

end

【问题讨论】:

    标签: matlab quantization lab-color-space


    【解决方案1】:

    事实证明我找到了解决方案:D

    好消息是:

    代码比较简单!

    在主程序中

    labImage = applycform(rgbImage, makecform('srgb2lab'))
    labImage = lab2double(labImage)
    L = labImage(:, :, 1)
    a = labImage(:, :, 2)
    b = labImage(:, :, 3)
    
    bins_L = 10
    bins_a = 10
    bins_b = 10
    
    quant_L = QuantizeMT(bins_L, L)
    quant_a = QuantizeMT(bins_a, a)
    quant_b = QuantizeMT(bins_b, b)
    
    quantColors = sqrt(quant_L.^2 + quant_a.^2 + quant_b.^2)
    

    QuantizeMT.m

    function quant = QuantizeMT(bins, data)
    
    % Number of divider is number of segments (bins) minus 1
    thresh = multithresh(data, bins-1)
    % Quantize image (or channel) based on segments
    quant = imquantize(data, thresh)
    
    end
    

    注意事项:

    1. 我们可以在不将 Lab 转换为 Double 的情况下继续,但某些图像可能会出现错误。这是因为 Lab 中的值是默认编码的。因此multithresh 函数不会检测到一些稍微不同的值,从而产生一些相同的阈值。基于imquantize 文档:“离散量化级别的值必须按单调递增的顺序排列。”因此最好使用lab2double函数。
    2. multithreshimquantize 函数应该与任何颜色空间兼容。尽管某些 RGB 图像存在异常,但在multithresh 步骤出现错误,通常在 B(蓝色)通道中。我不知道为什么。但是当我对整个图像使用imquantize 而不是逐个通道时,我没有问题。
    3. 组合三个通道的公式称为欧几里得距离。与任何色彩空间完全兼容,用于纹理检测时比其他公式产生更好的结果。

    PS:我用的是 Matlab R2012b。

    【讨论】:

      猜你喜欢
      • 2017-08-08
      • 1970-01-01
      • 1970-01-01
      • 2016-06-04
      • 1970-01-01
      • 2018-08-19
      • 2013-01-02
      • 2019-03-25
      • 1970-01-01
      相关资源
      最近更新 更多