2014-10-04 140 views
0

Matlab的:如何输入RGB值Matlab的如何RGB输入后得到的颜色名称值

所以我有这个图片,我用impixelregion找到每个像素的RGB值后收到的颜色名称。但是,我想要在Matlab上显示颜色的名称。例如,如果我输入RGB值[9,9,11],我希望Matlab告诉我颜色是黑色的。我是否必须为此创建自己的函数或代码,或者有什么可以让我输入任何我想要的RGB值,并让Matlab告诉我这些RGB值代表什么颜色?

谢谢!

+2

你可以使用像这样的网站:http://gauth.fr/2011/09/get-a-color-name - from-any-rgb-combination /,http://www.color-blindness.com/color-name-hue/或者在matlab中写你自己的函数... – bla 2014-10-04 05:57:21

+1

你说的是16.7 ** million **不同的组合。世界上没有任何语言有这么多的话,所以你将不得不按照类别分组(就像他们在上面的评论中给出的例子)。目前没有Matlab内置函数可以做到这一点,您将不得不编写自己的函数。基本上定义一个你想要的具有许多_named_颜色的表格,每个颜色都有一个给定的RGB值,然后对于你想要命名的每个RGB组合,找到表格中最接近的匹配并返回相应的名称。 – Hoki 2014-10-04 09:24:34

回答

0

这里的名称和相应的颜色值,下面wikipedia文件:

Colors_name_val.mat

这里是对应的代码给你一个颜色的名称。

function name = name_rgb(my_val) 

    load('Colors_name_val.mat') 

    delta=10000000; 

    for k=1:430 
     curDelta=sum(abs(my_val-Val(k,:))); 

     if(curDelta<delta) 
      name=Name(k); 
      delta=curDelta; 
     end 
    end 
end 

它只是发现少不同的颜色列表中,通过最小化sum(abs(my_val-Val(k,:)))