MATLAB gui - 如何为HSV图像生成色阶?

时间:2015-05-04 09:45:09

标签: matlab image-processing hsv

我正在制作一个色标,用于区分我的图像数据的两个标准。我有RGB的图像数据,我已经将它们转换为HSV。我设法找到每个图像的HSV的最小值和最大值。现在我如何在HSV空间中为图像生成色阶?

1 个答案:

答案 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

这就是我得到的:

enter image description here