matlab把rgb转为颜色名
2015-05-13 14:03
148 查看
获取颜色名的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 = '浅红灰色'; end else 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 end elseif(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 = '灰紫色'; end end end
相关文章推荐
- RGB转为HSI的MATLAB程序 rgb2hsi
- 绘制二值图轮廓转为RGB显示轮廓颜色
- 十六进制颜色改为RGB颜色,RGB颜色转为十六进制
- VB取各颜色分量,将RGB转为HTML颜色.
- MATLAB图像处理_LAB与RGB颜色空间互转
- MATLAB图像处理_YUV与RGB颜色空间互转
- 使用Matlab绘制图像的rgb颜色空间和Lab颜色空间分量图和分量直方图
- 【Matlab图像处理】学习笔记:读取16进制RGB文档转为彩色图片
- 用MATLAB将RGB图像中的显示为相同颜色的像索点提取出来
- MATLAB自定义函数:RGB与HSI颜色空间互换
- paper 74:MATLAB图像处理_HSV与RGB颜色空间互转
- 将16进制的颜色转为rgb颜色
- Matlab:常用的RGB颜色矩阵
- RGB转到LAB颜色空间,matlab和opencv内嵌函数使用的区别
- COLOR24函数:将将8位RGB值转为24为颜色索引值
- RGB与HSI颜色空间互换函数(matlab)
- js代码将rgb颜色转为16进制颜色
- 16进制颜色(html颜色值)字符串转为UIColor【RGB】
- RGB 颜色空间转 HSI 颜色空间的matlab程序实现
- RGB颜色转换_16进制颜色(html颜色值)字符串转为UIColor