matlab学术论文图片,如何在MATLAB使用代码做出好看的图片

有没有遇到过这种事情:写了一篇文章,还画了一个自己觉得还不错的系统示意图,很高兴的给老板看。老板看了,先是表扬了你一下,然后开始说意见了:“这个图的线条有点太细了,粗点会好看一些。那个地方弄一个倒角,比直角好看一些。”诸如等等。对你来说还有啥选择,回去改呗。

其他的问题好像都还好弄。就是把所有线条变粗比较麻烦。如果图是PPT做的,没法全选所有线条然后修改线宽,再说即使能,也只能变成一样宽。还有一些图是从AutoCAD里面导出来的,也只能一条一条来设置。当然解决方法是有的,反正有的是时间,那就一条一条设置呗,反正最多一个小时。还有更郁闷的时候,原文件都已经找不到了,只剩下最后的效果图了。要修改的话就要重做一遍了。可是假设老板还是不满意呢?对他来说只是一句话,可是每一句话就费了你宝贵的一个小时喝咖啡的时间。也许还有高端的做法吧,比如Photoshop,先膨胀然后再增加对比度等等。不过反正我是对Photoshop那么多搞不清楚功能的按钮很恐惧。

如果用MATLAB的话,解决起来还是比较容易的,代码也不复杂。为了把事情说的更清楚一些,代码再加点注释。

clear all;

clc;

inputfile = ‘Fig1.bmp’; % 输入的图像文件名,MATLAB支持的文件格式还是比较多的,所以不用担心

outputfile = ‘Fig1_2’; % 输出的文件名,可以不加后缀

outputfileformat = ‘png’; % 输出的文件格式。包含了很多常用的格式:比如’bmp’,’gif’, ‘jpg’, ‘png’, ‘tiff’等等。

thickness = 2; % 设置膨胀的宽度,越大则结果越粗

b=imread(inputfile);  % 读入图像文件

b=im2bw(b);           % 将图像转换成黑白二值图像

a=~b;                 % 黑白互换

se = strel(‘rectangle’, [thickness thickness]);  % 设置一个矩形区间

bw2 = ~(imdilate(a,se)); % 处理图像

imwrite(bw2, [outputfile ‘.’ outputfileformat],outputfileformat); % 将处理好的图像写入文件

% 以下为显示处理前与处理后的图像,可以删去

figure(‘color’,’w’)

subplot(1,2,1)

imshow(b);

title(‘Before’)

subplot(1,2,2)

imshow(bw2)

title(‘after’);

这里头最重要的代码其实就2行。strel是用来设置作用元素。这里是使用了矩形的元素,因为只是为了增加像素的宽度,这里的宽度是2, 如果需要更粗,只需要增加这个数字就可以了。其实还可以定义很多样式的,比如椭圆,或者沿着某个方向等。dilate函数是对图像做膨胀操作,用的元素就是上面的strel函数设置的。

下面是对照的图:(thickness=2)

b61d1ae3a4afa0c13628f6c1f1d0c369.png

不过得先说一下,这个不是终极解决方案。因为处理的对象是黑白图形。如果是彩色的呢?呃,我也要去想想,终归是有非常省事的解决方法的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值