Matlab图像处理解决论文插图背景模糊

      今天在写论文的时候需要插一些电路图,电路原理图采用AltiumDesigner软件绘制,绘制完成后截图再保存为''.png''格式的图片插入word中,然而我发现插到word中后,图片的背景不是纯白,并且元器件的填充色不是白色,这样不太清晰。如下图所示:

论文及插图

        在红色框内,可以看到图片的背景不是word文档的纯白色。这样子的插图不规范,并且也不符合我强迫症的习惯。因此,我从网上查找解决的办法,有人说可以使用PhotoShop软件的魔术棒功能,将背景设置为透明,苦于我的笔记本没有安装ps,而且我也从未用过ps软件,所以这个方法不可行。

        我转而一想,虽然不会用PS,但是我学过Matlab和图像处理,PS能干的事Matlab应该也能做到。而Matlab是理工男的必备软件,常规语法和函数我也熟烂于心,用Matlab做这件事应该比我重新学习PS要来的快。我的思路是:将图片中像素值比较浅的全部设置为白色,比较深的直接设置为纯黑,阈值的选取可以通过直方图来找。程序如下:

%time2019.09.22 22;00 
%Auther:HuaSir
clear all;clc;
x = imread('1.png');%读入图片
subplot(2,2,1);
imshow(x);title('真彩色图');
y = rgb2gray(x);%彩色图转化为灰度图
[m,n] = size(y);%获取图片大小
finalPicture = zeros(m,n);%新建一个矩阵用于存储最终图片
subplot(2,2,2);
imshow(y);title('灰度图');
subplot(2,2,3);
imhist(y);title('直方图');%灰度的直方图
%循环遍历灰度图,将像素值比较小颜色浅的一概认为是纯白色
for i=1:m
   for j = 1:n
      if y(i,j)<220
         finalPicture(i,j)=0;
      else
          finalPicture(i,j)=255;
      end
   end
end
subplot(2,2,4);
imshow(finalPicture);title('最终结果');
imwrite(finalPicture,'2.png');

以下为输出结果:

标程序运行结果图

在灰度直方图中有两个峰值,一个是白色,一个是灰色(因为第一幅图片-真彩色图中,像素点最多的是背景中的白色,以及电路元件内部填充的灰色),经过处理之后,整个元件的边框与引脚为黑色,背景为纯白色,完美的解决了上述问题。如下面两幅图,经过处理后的图片变得黑白分明,这样的电路图插入到论文中清晰可见,也更为规范。这只是一个初步的程序,程序中生产新矩阵的代码是通过循环遍历的,这个操作稍显笨拙,后续改进可以采用find()函数或者其他的矩阵处理函数,另外,有些待图片可能会有噪声点,后续可以增加降噪的代码,解决这个问题。以后再遇到Word插图的问题,可以采用这个办法。

处理前的原图片
处理后的图片

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nwsuaf_huasir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值