matlbb 2023-05-31 11:16 采纳率: 25.7%
浏览 7

MATLAB给彩色图像增加轮廓线

img


MATLAB如何将图片中有颜色的区域增加轮廓线,要求相同颜色区域的边缘形成一条封闭的线,有几种颜色就会有几条轮廓线,最后的结果一张黑白的图,里面有几条白色轮廓线

  • 写回答

2条回答 默认 最新

  • 臨城夏目 2023-05-31 11:25
    关注

    在MATLAB中,可以使用edge函数来实现将图片中有颜色的区域增加轮廓线的功能。具体步骤如下:
    1.读入图片并将其转换为灰度图像。

    rgbImage = imread('your_image.png');
    grayImage = rgb2gray(rgbImage);
    

    2.对灰度图像进行边缘检测,产生包含轮廓线信息的二值图像。

    bwImage = edge(grayImage);
    

    3.对二值图像进行连通性分析,将相邻的白色像素标记为同一个区域。

    cc = bwconncomp(bwImage);
    

    4.将每个区域的边缘提取出来,形成一条封闭的线。这里使用MATLAB中的regionprops函数进行处理。

    props = regionprops(cc, 'PixelList');
    

    5.将这些线绘制在一个空白图像上,得到最终的结果。

    bwOut = zeros(size(bwImage)); % 创建一个空白图像
    for i = 1:length(props)
        % 获取当前区域的像素坐标
        pixelList = props(i).PixelList;
        % 添加当前区域的轮廓线到空白图像上
        bwOut(sub2ind(size(bwOut), pixelList(:,2), pixelList(:,1))) = 1;
    end
    

    最终得到的bwOut即为包含所有白色区域轮廓线的黑白二值图像,其中白色区域的轮廓线形成了相应的白色线条。可以使用imshow函数或imwrite函数来显示或保存该图像。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月31日

悬赏问题

  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真
  • ¥15 关于#c语言#的问题,请各位专家解答!