我正在制作一个色标,用于区分我的图像数据的两个标准。我有RGB的图像数据,我已经将它们转换为HSV。我设法找到每个图像的HSV的最小值和最大值。现在我如何在HSV空间中为图像生成色阶?
答案 0 :(得分:1)
如果您打算生成HSV颜色条,可以使用hsv
colormap命令自行创建。
颜色图如下所示:
您可以指定此颜色映射中的总颜色N
作为函数的输入,输出将是N x 3
矩阵,其中每一行都是浮点([0,1]
) RGB元组,其中第一行表示最左边的颜色,最后一行表示上面图像中最右边的颜色。
因此,M
生成的颜色地图hsv
将为:
M = hsv(N);
但是,由于这实际上是一个查找表/颜色映射,因此可以将其显示为1像素宽(N x 1
)的图像。你可能想让它更宽,所以也许让颜色条更宽,所以像这样:
N = 256; %// Example
height = 50; %// Height of colour bar (in pixels)
M = hsv(N); %// Generate colour map
M = permute(M, [3, 1, 2]); %// Reshape to 1 pixel colour bar that is horizontal
M = repmat(M, [height, 1, 1]); %// Make the colour bar 50 pixels thick
imshow(M); %// Show the image
这就是我得到的: