【问题标题】:Modeling HSV Color Space in MATLAB在 MATLAB 中对 HSV 颜色空间进行建模
【发布时间】:2011-03-21 08:40:37
【问题描述】:

我可以在 MATLAB 中创建 3D 锥体,但是:有人知道如何绘制锥体以重新创建 HSV 颜色空间吗?我知道有命令:

颜色图 hsv;

但是我该如何使用它呢?

提前致谢。

【问题讨论】:

    标签: matlab colors computer-vision hsv


    【解决方案1】:

    我猜你想在下面的Wikipedia 图像中创建一个类似于圆锥的图:

    执行此操作的一种方法是使用 HSV 颜色空间的图像绘制圆锥和texture map 表面。您可以这样做:

    % First, create a 100-by-100 image to texture the cone with:
    
    H = repmat(linspace(0, 1, 100), 100, 1);     % 100-by-100 hues
    S = repmat([linspace(0, 1, 50) ...           % 100-by-100 saturations
                linspace(1, 0, 50)].', 1, 100);  %'
    V = repmat([ones(1, 50) ...                  % 100-by-100 values
                linspace(1, 0, 50)].', 1, 100);  %'
    hsvImage = cat(3, H, S, V);                  % Create an HSV image
    C = hsv2rgb(hsvImage);                       % Convert it to an RGB image
    
    % Next, create the conical surface coordinates:
    
    theta = linspace(0, 2*pi, 100);  % Angular points
    X = [zeros(1, 100); ...          % X coordinates
         cos(theta); ...
         zeros(1, 100)];
    Y = [zeros(1, 100); ...          % Y coordinates
         sin(theta); ...
         zeros(1, 100)];
    Z = [2.*ones(2, 100); ...        % Z coordinates
         zeros(1, 100)];
    
    % Finally, plot the texture-mapped surface:
    
    surf(X, Y, Z, C, 'FaceColor', 'texturemap', 'EdgeColor', 'none');
    axis equal
    

    你应该得到下图:

    【讨论】:

    • +1 对其进行了测试,效果非常好(您可能想在 SURF 选项中添加 'EdgeColor','none'
    猜你喜欢
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 2013-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多