2014-10-04 159 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,:)))