matlbb 2023-04-05 12:57 采纳率: 25.7%
浏览 8

MATLAB图片处理

MATLAB如何将彩图中的颜色全部换成白色,但保留原本彩图中的轮廓,原本颜色的分隔线的要保留,只将所有颜色改成白色,颜色与颜色之间的区别线保留。

  • 写回答

2条回答 默认 最新

  • usp1994 2023-04-06 14:13
    关注

    你可以使用MATLAB的内置函数imbinarize和imdilate来实现这个功能。具体步骤如下:

    加载彩色图片,使用imread函数实现。
    
    img = imread('example.jpg');
    
    将彩色图片转换为二值图像,使用imbinarize函数实现。通过调整二值化阈值可以控制轮廓的清晰度。
    
    bwImg = imbinarize(img, threshold);
    
    对二值图像进行膨胀操作,保留颜色与颜色之间的分隔线。
    
    se = strel('disk', radius);
    bwImg = imdilate(bwImg, se);
    
    将二值图像转换为RGB图像,并将所有颜色替换为白色。最后得到的图像即为只保留轮廓的白底图像。
    
    img(~bwImg) = 255;
    

    其中threshold是用于二值化的阈值,radius是用于膨胀操作的半径,需要根据实际情况进行调整来得到满意的效果。此外,为了减少噪声干扰,可以在转换为二值图像前对原始图像进行预处理,例如使用medfilt2函数进行中值滤波平滑图像。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月5日

悬赏问题

  • ¥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语言#的问题,请各位专家解答!