之前写了一篇道路分割的效果算法博文(http://blog.csdn.net/qjttxz/article/details/7648316),之后有人问我如何实现之类的。所以特意拿出来做对其进行一些简单的介绍:
首先对色彩空间和色彩密度有个基本概念:
常使用 RGB(红色、绿色、蓝色)色彩空间定义,这是另外一种生成同样颜色的方法,红色、绿色、蓝色被当作 X、Y 和 Z 坐标轴。另外一个生成同样颜色的方法是使用色相(X 轴)、饱和度(Y 轴)和明度(Z 轴)表示,这种方法称为HSB 色彩空间。另外还有许多其它的色彩空间,许多可以按照这种方法用三维(X、Y、Z)、更多或者更少维表示,但是有些根本不能用这种方法表示。
下面是各种不同色彩空间比较(当然还有其他包括HSV,CMYK等这里不累赘)
第二:我们要分割色彩必须要定义何为相同色彩。传统分割相同的色彩一般有漫水填充,分水岭等。这些算法都有一个特性,他表述了色彩块的定义:即跟某一色彩的阀值距离一致即为相同色彩块,还有k-mean传统算法表述就是使用五维的数据空间进行聚类好像能够把相关色彩进行阀值聚类。这些算法对色彩的分析都有一定的可取之处,但是所有的算法都有一定问题:.色彩不是某个数值,而是个相对数值;色彩类别没有区分(很多时候把蓝色归到到了紫色那里,这明显是错的);色彩是数值变化导致质量变化的区分(跟第二点是个矛盾)等
下面用图解解析上面的色彩块的矛盾:
首先是两个点色彩:
这时候看上去有点灰
然后再看看几个点色彩
这样好像有点突出了这个区域的了
我们再看看最后的一个窗体
这时候可以显示出他是灰白了
后面再放大区域就是一条白色线了
看到结果了吧,色彩空间的表示非常复杂,要清楚表述上面的 结果必须解决其色块问题。
到这里,我们初步了解了色彩空间的一下简单的定义。
第三:下面我们需要讨论需要实现的算法要求:
1:同一个色块的任意点都能延伸到自己的色块的所有成员,并且不会多,不会少。
2:色块内所有点都到色块任意点的色差是个渐变过程
3:色块之间的相对性与色块衔接成员变异相对性一致。
上面是一些基本的分析过程,仅供参考,实际情况还有很多,之后我再做测试进行讨论,如果有什么疑问可以留言。
下次再进行一些效果和算法讨论。