【问题标题】:MATLAB gui - How do i generate a colour scale for HSV image?MATLAB gui - 如何为 HSV 图像生成色标?
【发布时间】:2015-05-04 09:45:08
【问题描述】:

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

【问题讨论】:

  • 我不确定您所说的“色标”是什么意思。您是否尝试生成一个或多个 HSV 通道的直方图?
  • 很抱歉造成误解,但我正在尝试在 hsv 颜色空间中生成颜色条,但我需要在 matlab gui 上显示它。我可以这样做吗?
  • hsv 颜色空间是三维的,颜色条只有一维...

标签: matlab image-processing hsv


【解决方案1】:

如果您打算生成 HSV 颜色条,您可以使用hsv colormap 命令自行创建。

颜色图如下所示:


(来源:mathworks.com

您可以从这个颜色图中指定有多少颜色 N 作为函数的输入,输出将是一个 N x 3 矩阵,其中每一行是一个浮点 ([0,1]) RGB 元组,其中第一行表示上图中最左边的颜色,最后一行表示最右边的颜色。

因此,从hsv 生成的颜色图M 将是:

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

这是我得到的:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 2018-06-05
    相关资源
    最近更新 更多