HSV与RGB颜色空间中的像素平均值

时间:2015-02-11 15:51:24

标签: matlab image-processing colors rgb hsv

我的问题比任何事情都更具概念性。我在极坐标系中表示空间地图(比如大城市地图)。我记录了10x10家乡郊区居民的数据,询问他们希望居住在这个大都市区的(r,theta) - r与中心的距离,theta角度围绕x轴,所以我使用极坐标系并使用HSV对其进行颜色编码,保持V=1=constant。在获得每个家庭的HSV颜色后,我将这个10x10x3 HSV矩阵转换为RGB并使用image()显示以下图表。

图1:[10x10网格代表一个社区。颜色代表这些家庭想要居住在大都市区的地方。图例显示了极坐标中的都市区域,HSV颜色空间,其中V = 1。

现在,我正试图创建一个更好的视觉表现这个郊区,看看人们是否根据他们想要居住在大都市区的偏好进行分组。使用

Img2=imresize(Img,1000,'bilinear','colormap','original');

这会将10x10x3 RGB 矩阵的大小增加到10000x10000x3 RGB矩阵,同时在像素之间使用双线性插值,从而平滑显示此处显示的图片:

图2:[在像素之间使用双线性插值的大平滑矩阵]

我的问题是:如果我的主要兴趣在于HSV空间即极坐标都市区,那么在RGB空间中使用这种插值方法是否有效?换句话说,当此函数采用RGB中许多像素的平均颜色时,它是否代表大都市区中正确的半径和角度?

提前谢谢你。我为一个可能很简单的问题长篇大论而道歉。

1 个答案:

答案 0 :(得分:1)

  

V定义为max(R,G,B)。

如果您从RGB(255,0,0)插入到RGB(0,0,255),那么中途结束时会RGB(128,0,128)

你看到最大值是128.所以你不能使用rgb插值,除非你把V增加到1(或255,如果你使用8位)

顺便说一句。我不会插值,因为你不能假设基础值是线性的。

有关详细信息,请参阅此处:https://stackoverflow.com/a/2594030/461499