MATLAB图片处理

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

你可以使用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函数进行中值滤波平滑图像。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/749479
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:matlab报错问题——当搜索路径存在问题时,将无法成功使用 MATLAB®,还是工具箱的问题然后怎么改。。。???
  • 同时,你还可以查看手册:matlab 滚动颜色图颜色 spinmap 中的内容
  • 除此之外, 这篇博客: matlab多元函数拟合,只有数据,不知道函数形式,未知函数关系的多元函数拟合中的 今天遇到一个问题,是求解matlab多元函数拟合的, 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    但是函数关系不确定,就是需要自己定义函数关系,然后自己调试函数中需要的参数的值。

    刚开始思路是自定义一个函数关系式,然后用pso求解最优参数,其最后输出的y的值为下图所示,输入有三个自变量,x1,x2,x3.

    最后的需求是找到x1,x2,x3.与y的具体关系式子,比如
    y=ax1+bx2+cx3;
    y=a
    x1+bx2+cx3+ex1x1+fx2x2++ex3x3;等等

    找到思路后,尝试了很多能想到的函数关系,当然,部分结果我感觉是还可以:从刚开始的下图效果,这个拟合结果整体趋势是有了,但是结果很不理想,然后增加了更复杂的参数模型
    在这里插入图片描述
    进补到下列效果,大概是63个值与标准y的误差在1%-2%之间,此时自定义的拟合函数变为
    在这里插入图片描述
    看到效果还不错,然是还是有很大误差。开头和结尾差距还是很大在这里插入图片描述

    到后来,放弃自己试了, 用ANN去算了,然后手动带内核参数生成函数,大概有37个参数,函数式一长串,但是拟合效果还是可以的,如下图所示:
    在这里插入图片描述
    但是这个效果,只有220个点误差在范围内,一共280个数据,还有60个数据误差偏大

    仔细看了看发现,应该就是开头和结尾误差大
    在这里插入图片描述
    最后,最后,经过多次尝试,
    在这里插入图片描述
    278个点正确,满足1%-2%的误差,也达到最终拟合需求。

    在这里插入图片描述
    记录一下,需要数据拟合的可以私聊


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^