matlab把rgb转为颜色名
获取颜色名的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 = '黑绿色';elsecname = '黑色'; 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 = '浅红灰色'; endelsecname = '浅灰色';end elseif(v > 0.5)cname = '灰色';elseif(v > 0.4)cname = '深灰色'; elsecname = '黑灰色';end
elseif(h <= 1/12 || h >= 11/12)if(h <= 1/12 && h >= 0.05)if(s < 0.5)if(v < 0.65)cname ='褐色';elsecname = '茶色';end elseif(v > 0.8)cname = '橙色';elsecname = '褐色';end elseif(h >= 11/12)if(v < 0.6)cname = '梅红色';elseif(s < 0.5)if(v > 0.8)cname = '玫瑰红色';elsecname = '粉红色';end elsecname = '红色';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 = '深红色';elsecname = '酒红色';end elseif(v > 0.8)cname = '橙红色';elsecname = '咖啡色';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 = '浅橙色';elsecname = '土黄色';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 = '深黄色';elsecname = '黄色';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 = '浅绿色';elsecname = '薄荷绿色';end elseif(v > 0.7)cname = '鲜绿色';elseif(v < 0.3)cname = '深绿色';elsecname = '绿色';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 elsecname = '青色'; end elseif(h >= 0.53 && h <= 7/12)if(s > 0.7) if(v > 0.7)cname = '天蓝色';else cname = '深青色';end elsecname = '淡蓝色';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 = '紫蓝色';elsecname = '靛蓝色';end elsecname = '蓝色'; end elseif(h >= 0.72 && h <= 0.8)if(v < 0.5)cname = '深紫色';elseif(v > 0.8)cname = '淡紫色';elsecname = '蓝紫色'; end elseif(h >= 0.8 && h <= 11/12)if(s > 0.4)if(v < 0.7)if(s > 0.85)cname = '紫罗兰蓝色';elsecname = '梅红色';end elsecname = '粉红色';end elsecname = '灰紫色';end end
end
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
