【问题标题】:Check each pixel for a specific colour (within a certain threshold)检查每个像素的特定颜色(在某个阈值内)
【发布时间】:2010-10-13 14:56:55
【问题描述】:

我在 MATLAB 中有一个 RGB 图像,我想遍历每个像素并检查它是否是肤色(ish)[我可能稍后会在 HSV 空间中执行它以消除照明等的影响]

有人知道最好的方法吗? MATLAB 奇怪的语法让我有点困惑!

目前我有:

for x = 1:size(I,1)
    for y = 1:size(I,2)
            %Get the value from this x,y coordinate and check the colour.
    end
end

但我认为这是非常错误的。

如何正确访问矩阵的不同部分?

【问题讨论】:

    标签: matlab image-processing colors rgb


    【解决方案1】:

    埃德,

    你不需要循环:

    >> a  = magic(5)
    
    a =
    
        17    24     1     8    15
        23     5     7    14    16
         4     6    13    20    22
        10    12    19    21     3
        11    18    25     2     9
    
    
    >> vi = (a > 5) & (a < 10)
    
    vi =
    
         0     0     0     1     0
         0     0     1     0     0
         0     1     0     0     0
         0     0     0     0     0
         0     0     0     0     1
    

    您可以看到如何为 RGB 等扩展此语句。我会做一个函数


    函数输出 = isFlesh(in)

    %%这里放肉检查代码


    我怀疑您会想要其中的一系列(isCaucasian、isAsian 等...)问题是肉色范围很广,因此您需要检查是否接近到相似颜色范围的邻居。

    这部分问题很简单,但更大的问题却充满了危险。

    -道格

    【讨论】:

    • HSV 空间解决了肤色问题,因为所有不同的颜色只是黑色素的变化,所以在 HSV 空间中它们在技术上是相同的(我相信具有不同的饱和度)。但是感谢 cmets 和答案,MATLAB 的语法总是让我很困惑!
    【解决方案2】:

    要记住的一点是 RGB 图像是 3-D 矩阵。第一个“页面”(即 A(:,:,1))是红色的,第二个是绿色的,第三个是蓝色的。有时我发现通过将 RGB 矩阵重新整形为 N×3 矩阵更容易操作,其中所有红色像素在第 1 列,绿色在第 2 列,蓝色在第 3 列。这是如何做到的:

    A = (a 3-D RGB image);
    matSize = size(A);
    A = reshape(A,prod(matSize(1:2)),3);
    ...
    % Modify or extract data from reshaped matrix
    ...
    A = reshape(A,matSize);  % Return A to original dimensions
    

    不确定这是否会具体帮助您完成您想做的事情,但我经常发现它很有用。

    【讨论】:

      【解决方案3】:

      对每个通道设置阈值并不是一种非常可靠的肤色检测方法。一个简单的查找表效果更好。查找表将为每种颜色记录一个值,它是皮肤的可能性有多大。您可以使用各种肤色数据集来获取这些值。然后,您可以将像素的颜色与表中的值进行比较,并根据阈值进行决策。

      【讨论】:

        猜你喜欢
        • 2018-11-22
        • 2011-10-10
        • 1970-01-01
        • 2016-03-03
        • 2019-09-26
        • 1970-01-01
        • 2013-10-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多