【问题标题】:using imagesc for segmentation使用 imagesc 进行分割
【发布时间】:2012-10-14 18:24:56
【问题描述】:

我观察到,每当我使用命令imagesc(image); 时,生成的图像都会有一些区域是黄色的,而背景是红色的。

有没有办法分割图像的这些区域?如果没有,它们是否有任何类似的模式可用于阈值处理,或者颜色表示是否毫无意义?

我在 Windows 上使用 Matlab R2012a。

【问题讨论】:

    标签: matlab image-processing image-scaling


    【解决方案1】:

    当您使用 imagesc(图像比例的缩写)时,您可以通过将该矩阵的最小值映射到颜色图的一端并将矩阵的最大值映射到另一端来可视化矩阵。

    默认情况下,MATLAB 使用正常的 RGB 颜色范围的 jet() 颜色图。如果图像的某些部分变成黄色,则表示矩阵的元素处于最高值和最低值之间的某个特定位置。

    希望下面的示例更清楚地说明了这一点,并展示了如何分割矩阵的“黄色”区域(它本身实际上没有任何颜色)

    colorRes = 256;
    
    %# In a jet colormap with size 256, yellow is at placement 159
    yellow = 159;
    yellowScale = ((yellow/256));
    
    image = repmat(1:colorRes,40,1);
    
    figure(1);clf;
    colormap(jet(colorRes))
    
    subplot(2,1,1)
    imagesc(image)
    title('Original image')
    
    %# Segment out yellow
    colorDist = 1/colorRes*5; %# Make scalar higher to include colors close to yellow
    imageSegmented = zeros(size(image));
    imageSegmented(abs(image/colorRes-yellowScale)< colorDist) = 1;
    
    subplot(2,1,2)
    imagesc(imageSegmented)
    title('Yellow segmented out')
    

    【讨论】:

      猜你喜欢
      • 2013-12-10
      • 2016-07-23
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多