opencv实现颜色表
最近写了一些关于遥感影像非监督分类的一些练手的小程序(K均值、ISODATA聚类),其中最后都需要给最终分类结果中的不同类别赋予不同的色彩。看到许多周围的人都是直接声明一个数组:
int R=[0,255];
int G=[0,255];
int B=[0,255];
需要的颜色的时候给不同通道附上对应的值。但是这么做肯定是不够的。第一,手动输入太过麻烦;第二,受到限制。如上面的例子,你只能给出2x2x2=8种颜色。为了使得颜色更丰富,也为了提高自己。于是想到了用对HSV空间进行切割的办法,自己创建一个颜色条,最终达到了117种颜色。
如果对HSV不了解的读者可以查看百度百科(链接:HSV 百度百科)。接下来简要介绍一下具体是怎么做的。首先对三个分量进行切割,H(色调)分为了13种,S(饱和度)分为了3种,V(明度)分为了3种。<这几个数字是通过不断的生成、输出、显示 、调整后得到的,读者可根据自己的想法自行调整>。然后,再变换到RGB空间中。最后得到的颜色共有13x3x3种颜色。
下面是颜色表的实现代码以及测试程序:(color_bar是全局的)
#include "stdafx.h"
#include<iostream>
#include<math.h>