獲取顏色名的m函式:
function cname = colorname(r,g,b)
hsv = rgb2hsv(r,g,b) ;
h = hsv(:,:,1);
s = hsv(:,:,2);
v = hsv(:,:,3);
sprintf('h:%.2f,s:%.2f,v:%.2f',h,s,v)
if(v < 0.2 && s < 0.5)
if(h >= 0.165 && h <= 0.54 && v > 0.15 )
cname = '黑綠色';
else
cname = '黑色';
end
elseif((v > 0.9 && s < 0.04) || (v > 0.95 && s < 0.1) || (v > 0.98 && s < 0.15))
cname = '白色';
elseif ((v >= 0.3 && s < 0.18) || (v >= 0.15 && s < 0.1))
if(v > 0.7)
if(s > 0.15)
if(h <= 1/12 || h >= 11/12)
cname = '淺紅灰色';
elseif(h >= 1/12 && h <= 0.17)
cname = '淺黃灰色';
elseif(h >= 0.165 && h <= 0.54)
cname = '淺綠灰色';
elseif(h >= 5/12 && h <= 7/12)
cname = '淺藍灰色';
elseif(h >= 0.72 && h <= 9/12)
cname = '淺藍紫灰色';
elseif(h >= 9/12 && h <= 11/12)
cname = '淺紅灰色';
endelse
cname = '淺灰色';
end
elseif(v > 0.5)
cname = '灰色';
elseif(v > 0.4)
cname = '深灰色';
else
cname = '黑灰色';
end
else
if(h <= 1/12 || h >= 11/12)
if(h <= 1/12 && h >= 0.05)
if(s < 0.5)
if(v < 0.65)
cname ='褐色';
else
cname = '茶色';
end
elseif(v > 0.8)
cname = '橙色';
else
cname = '褐色';
end
elseif(h >= 11/12)
if(v < 0.6)
cname = '梅紅色';
elseif(s < 0.5)
if(v > 0.8)
cname = '玫瑰紅色';
else
cname = '粉紅色';
end
else
cname = '紅色';
end
elseif(h < 0.012)
if(s > 0.8 && v > 0.8)
cname = '紅色';
elseif(s < 0.3 && v < 0.6)
cname = '深褐色';
elseif(s < 0.3)
cname = '粉酒紅色';
elseif(v < 0.6)
cname = '深紅色';
else
cname = '酒紅色';
end
else
if(v > 0.8)
cname = '橙紅色';
else
cname = '咖啡色';
end
endelseif(h >= 1/12 && h <= 0.17)
if(h < 0.09 && s < 0.6)
cname = '黃膚色';
elseif(h < 0.12)
if(s > 0.7 && v > 0.7)
cname = '淺橙色';
else
cname = '土黃色';
end
elseif(h < 0.15)
cname = '金色';
elseif(s < 0.41 && v > 0.7)
cname = '淺黃色';
elseif(s < 0.85)
cname = '檸檬黃色';
elseif(v < 0.4)
cname = '橄欖色';
elseif(v < 0.6)
cname = '深黃色';
else
cname = '黃色';
end
elseif(h >= 0.165 && h <= 0.53)
if(h < 0.25)
cname = '橄欖綠色'; %又名酸橙色
elseif(h < 0.28)
cname = '黃綠色';
elseif(h < 0.35)
if(s < 0.6)
if(s < 0.4)
cname = '淺綠色';
else
cname = '薄荷綠色';
end
elseif(v > 0.7)
cname = '鮮綠色';
elseif(v < 0.3)
cname = '深綠色';
else
cname = '綠色';
end
elseif(h < 0.46)
cname = '海綠色';
elseif(v > 0.7)
if(v > 0.9)
if(s > 0.9)
cname = '青綠色';
else
cname = '淺青綠色';
end
else
cname = '水綠色';
end
else
cname = '青色';
end
elseif(h >= 0.53 && h <= 7/12)
if(s > 0.7)
if(v > 0.7)
cname = '天藍色';
else
cname = '深青色';
end
else
cname = '淡藍色';
end
elseif(h >= 7/12 && h <= 0.72)
if(v < 0.55)
cname = '深藍色';
elseif(s > 0.85)
cname = '藍色';
elseif(s < 0.4 && v > 0.7)
cname = '粉藍色';
elseif(s < 0.9)
if(v > 0.8)
cname = '淺藍色';
elseif(s < 0.5)
cname = '灰藍色';
elseif(s < 0.6 && v > 0.6)
cname = '紫藍色';
else
cname = '靛藍色';
end
else
cname = '藍色';
end
elseif(h >= 0.72 && h <= 0.8)
if(v < 0.5)
cname = '深紫色';
elseif(v > 0.8)
cname = '淡紫色';
else
cname = '藍紫色';
end
elseif(h >= 0.8 && h <= 11/12)
if(s > 0.4)
if(v < 0.7)
if(s > 0.85)
cname = '紫羅蘭藍色';
else
cname = '梅紅色';
end
else
cname = '粉紅色';
end
else
cname = '灰紫色';
VB取各顏色分量,將RGB轉為HTML顏色
取各顏色分量 public function getredvalue color as long as integer 取得紅色值 getredvalue color and endfunction public function getgreenvalue color as long as int...
基於matlab的RGB到YCbCr顏色空間的轉換
在matlab中,影象處理工具箱會將彩色影象當做rgb影象或者索引影象來處理。除了這兩種顏色空間外還有其他一些以rgb模型為基礎的顏色空間,如常見的ycbcr hsv hsi顏色空間等。這裡只講影象從rgb到ycbcr顏色空間的轉換並對亮度分量y進行提取 rgb到ycbc顏色空間轉換的基本語句如下 ...
RGB表示顏色
rgb是表示顏色常用的一種方式 看完這篇文章你能就學會 科學地搞顏色 rgb的原理 首先上色圖 看懂了沒,沒看懂就對了 rgb的原理 as we all know,the rgb分別代表r red紅 g green綠 b blue藍 光的成色原理 其通用格式為 由 和6位代表rgb值的16進製制數組...