当前位置:  开发笔记 > 编程语言 > 正文

检查每个像素的特定颜色(在特定阈值内)

如何解决《检查每个像素的特定颜色(在特定阈值内)》经验,为你挑选了1个好方法。

我在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

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

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



1> MatlabDoug..:

埃德,

你不需要循环:

>> 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等扩展此语句.我会做一个功能


function out = isFlesh(in)

%%在这里放入肉体检查代码


我怀疑你会想要一系列的这些(isCaucasian,isAsian等等)问题是,有大量的肉色,所以你要检查邻近的邻居类似的颜色范围.

问题的这一部分很容易,但更大的问题充满了危险.

-Doug

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有