代码之家  ›  专栏  ›  技术社区  ›  Rajan

如何在MATLAB中改变边缘的颜色?

  •  0
  • Rajan  · 技术社区  · 8 年前

    我有一个脚本,它需要一个图像,并应用一些边缘检测方法,如坎尼,索贝尔和日志。当我运行文件时,会在边缘为白色的位置绘制一个图形。

    有没有办法将边缘的颜色更改为首选颜色?

    function cw1
      im0 = imread('lighthouse.png');
      im = rgb2gray(im0);
      im3 = edge(im,'canny');
      im4 = edge(im, 'sobel');
      im5 = edge(im, 'log');
      im2 = my_edge1(im);
      subplot(3,2,1), subimage(im); title ('Original'); axis off
      subplot(3,2,2), subimage(im2); title ('My Edge'); axis off
      subplot(3,2,3), subimage(im3); title ('Canny'); axis off
      subplot(3,2,4), subimage(im4); title ('Sobel'); axis off
      subplot(3,2,5), subimage(im5); title ('Log'); axis off
    end
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Dev-iL    8 年前

    这个问题不是很明确,但无论如何我都会尽力帮助你。下面是一个使用绿色边缘的演示:

    function q47394633
      im = rgb2gray(imread('peppers.png'));
      e = edge(im); % logical matrix, where "true" indicates an edge.
      g = reshape(uint8([0 255 0]),[1,1,3]) .* uint8(e); % Turn the above to RGB while making
      figure();                                          % only the green channel nonzero.
      subplot(3,1,1); imshow(e);    % Show white edges
      subplot(3,1,2); imshow(g);    % Show green edges
      subplot(3,1,3); imshow(im+g); % Show green edges on the image
    end
    

    enter image description here