制作自己的具有透明化背景的电子版手写体

制作自己的具有透明化背景的电子版签名

        本文教你如何将自己的手写体转换为具有透明化背景的电子版,可以用手机摄像头拍摄,用此程序处理,相当于扫描仪哟。需要工具: 可拍照的电子产品、matlab。      

        先给出效果图:


图1 电脑前置摄像头拍摄的手写体照片


图2 matlab二值化处理后的结果(自动提取边界)


图3 插入word后的效果(背景为透明)


        下面给出具体步骤(以上图为例,其中原始手写体图片名为:wdbk.png):

1. 将要处理的照片(以wdbk.png为例)放入matlab当前工作目录,并新建一个.m文件(matlab文件),命名为:getSome.m,然后将如下代码Copy进去,保存。

function [  ] = getSome( fileName, threshold )

 

%% ----------利用二值化功能处理不清楚的图像------------

-------------------获得电子版的手写体---------------------

% Input

%       fileName:图像全名,如 '1.jpg',单引号不能丢

%       threshold:二值化分割阈值,取值范围:(0,1)

使用方法

%       以对照片:'wdbk.png'处理为例

%       getSome( 'wdbk.png', 0,54 )

%       

%   OR

%       getSome(  'wdbk.png' )

%       使用默认阈值:0.5

% ------------------------2013/7------------------------------

% ------------------------liuzhi------------------------------

 

clc;close all;

%% 判断interval输入的有效性

if ~exist('threshold','var') || threshold >= 1 || threshold <=0;

    disp('阈值使用默认值0.5,但效果可能不好,请自行调整!');

    threshold = 0.5;

end

I=imread(fileName); 读入图片并存入矩阵 I

imshow(I); 显示读入的原始图片

BW=im2bw(I,threshold); 二值化处理,并存入BW

figure

imshow(BW); 显示二值化处理后的图片

[H,W]=size(BW);

%% 自动确定上下左右边界

[row,col] = find(BW ==0);

rs=min(row)-1;cs=min(col)-1;

HN = max(row)-min(row)+1;

WN = max(col)-min(col)+1;

RBW = ones(HN,WN);

for i=1:HN

    for j=1:WN

        if BW(i+rs,j+cs)==0

             RBW(i,j)=0;

        end

    end

end

%% 显示及保存

figure

imshow(RBW); 显示提取上下边界后的二值化图片结果

将处理好的图片以透明背景保存为名为 result_of_fileName

其中fileName为原始图片名,即以 result_of_为前缀保存

imwrite(RBW,['result_of_',fileName],'PNG','Transparency',1);

 

end


2. 在命令窗口输入:getSome( 'wdbk.png', 0,54 )回车即可出现如上图2所示的效果,同时会在当前目录生成result_of_wdbk.png,如下图中的红线所示。注:需要根据不同的图片选择不同的阈值,请看代码注释部分。


图4 电子版的手写体被自动保存


图5 透明背景的电子版手写体(即result_of_wdbk.png

3. 然后你就可以把result_of_wdbk.png图片插入到文章的任意地方(注意修改图片的布局方式呦)。效果图如上图3所示。


准备做个Android应用,利用手机或平板即可实现扫描仪等功能,从此再也不用去复印店里扫描了!哈哈。

欢迎交流,转载请注明出处!




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值