探讨技术!将三维彩色图映射为一维彩色图
人工智能吧
全部回复
仅看楼主
level 1
我在做cifar-20分类想,能不能将三维彩色图转为一维彩色图(不是灰度图)!!人类目前来说识别不了255*255*255RGB三通道海量的颜色!!!!
我从度娘搜素得到的答案是,人目前能识别的颜色为6k种颜色,这远远比255*255*255少得多(我自己觉得自己并不能识别不了^m^)
于是我就从百度搜索色环图,找分类最多的那种,找到以后用拾色器分别取下其RGB值,为其设置一个唯一的一数字键值,当作其颜色唯一的标识(PS:这很重要,训练要用得到)
做完上面工作以后,找了张图片来做实验,把其原始颜色值映射到其最相似色的分类颜色块中,结果是↓↓↓
基于上述,用于做图片分类,不知为啥TF崩了
(版权:原始图片来自于百度搜索,仅作学习使用)
2019年05月04日 11点05分 1
level 1
颜色是三维数据,虽然科学是按RGB的维度,但人脑对颜色的识别主要是HSL的。
RGB颜色值可以用公式转成HSL值。
HSL代表:H色相(颜色的名称/色环/彩虹条)、S纯度(饱和度/灰度/鲜艳程度)、L亮度(明度/深浅度)
色环是按色相排列的,配合纯度和亮度,可以组成色立体。
色立体比较符合人脑识别颜色的习惯。
HSL每个通道的值可以用0~1之间的数字来表示。(电脑常用0~255之间的整数表示)
黑色的明度=0,纯度=0;白色的明度=1,纯度=0,所以HSL的色立体模型是向白、黑的上下两端收敛的,形成纺锤型。
一般来说RGB值越高,亮度值越高,越接近白颜色,白色的RGB值=(1,1,1),那么HSL值=(0,0,1),L值为1。
理论上任何一种颜色的RGB转成L值,只要R、G、B取平均值就行了。
但实际上这种情况不符合人眼的感觉。
按标准RGB颜色变换出的色相彩虹条中,L值相等,但人眼的观察会觉得黄、绿色较亮,蓝色较暗。
因此有了其它的变换亮度算法,常用于转换黑白照片或压缩。
Photoshop标准亮度公式(ITU-R BT.601标准):Gray = 0.3*R + 0.59*G + 0.11*B
BT601是加权重修正的,计算简便且比较符合人眼的感觉,因此应用最广泛。
2019年05月04日 14点05分 2
level 1
2019年05月04日 14点05分 6
我的意思是,红色用一个数字来标识,绿色用一个数字来标识,把人类可以识别的颜色转换成数字来标识,不应该用rgb三个值来标识
2019年05月05日 11点05分
@最佳小雨停 “红色用一个数字来标识,绿色...”其实这就是“索引色”,你说的其实就是一个全局索引色的选择问题。
2019年05月05日 19点05分
@最佳小雨停 位图bmp/gif/png等都支持索引色,每种颜色可以用索引id表示,而不用RGB表示。我在这里讨论的是假如从电脑可以显示的颜色挑出一些来,比如挑只256个作全局索引,任何图像都只用这256种颜色表示,那么挑哪些颜色最能还原人眼的感觉。提供了一种HSL'的挑选方式。
2019年05月05日 19点05分
level 9
人识别的了,还超过呢!
不然人怎么识别的了是实物还是电脑显示器的图片?
只要识别前要有参考。
2019年05月04日 15点05分 7
level 1
你挑的色环索引只是选了HSL模型外表的一层颜色,相当于二维的表面色H、L,缺乏往灰色过度的低纯度颜色S,所以背景的颜色就太过鲜艳,很不协调。
2019年05月05日 19点05分 8
赞同,选色未考虑饱和度。
2019年05月12日 16点05分
学习了,感谢🙏
2019年05月14日 12点05分
level 11
别说6k色,就是64k色过度也不太自然,这里“识别”这个词很模糊,是指能认出某个颜色名?画家好像也只能认出一二百种。是说能分辨某两种颜色的不同?有个测你对颜色分辨的小程序,我用crt能满分,液晶屏则不能。6k色,不用抖动算法绝对过渡不自然。64k色的显卡上世纪淘汰了,64
2019年05月12日 15点05分 9
level 11
(不小心点到发表了,接上楼)k色的液晶屏几乎要淘汰了,我测颜色分辨那时,估计用的就是64k色的液晶屏。
2019年05月12日 15点05分 11
1