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

Average of pixels in HSV vs RGB colorspace

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

图 1:[代表一个社区的 10x10 网格。颜色代表这些家庭希望在大都市区居住的地方。图例以极坐标显示大都市区,HSV 颜色space,其中 V=1 始终。]

现在,我正在尝试为这个郊区社区创建一个更好的视觉表示,以查看人们是否根据他们希望在大都市区居住的地方进行分组。使用

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

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

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

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

提前谢谢你。对于一个可能很简单的问题的长篇大论,我深表歉意。

V is defined as the max (R,G,B).

如果您从 RGB(255,0,0) 插值到 RGB(0,0,255),那么在中途您将得到 RGB(128,0,128)

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

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

查看此处了解更多信息: