Ques:有时候我们需要在电子文档上实现手写的签名,但是又没有相关的文档,我们应该如何解决这个问题呢?
先看看实验结果
程序:
%% 选取图像
[filename, pathname] = uigetfile({'*.jpg'; '*.bmp'; '*.gif'}, '选择图片');
%没有图像
if filename == 0
return;
end
%% 读取图像
I= imread([pathname, filename]);
I= imresize(I,0.5);
figure(1);
imshow(I) %显示原图像
%% 手动裁剪图像
figure(1),imshow(I,[]);title('点住鼠标左键可以拖动选择的区域,并且松开后双击确认区域');
set(gcf,'outerposition',get(0,'screensize'));%使该图显示最大化,便于取点
b = imcrop(); % 鼠标可以拖动选择的区域,并且双击确认区域
close;
% set(gcf,'outerposition',get(0,'screensize'));%使该图显示最大化
imshow(b);
%% 图像处理
I1 =rgb2gray(b); %转为灰度图像
imshow(I1)
I11=imadjust(I1); %增强图像对比度
imshow(I11)
I11B=im2bw(I11); %图像二值化
figure(2);
imshow(I11B)
%% 字体加粗
SE1=strel('disk',4); %生成圆盘
I3= imerode(I11B,SE1); %利用圆盘对图像进行膨胀
figure(3);
imshow(I3);
%% 字体变细
SE2=strel('disk',2); %生成圆盘
I4= imdilate(I11B,SE2); %利用圆盘对图像进行腐蚀
figure(4);
imshow(I4);
%% 保存图片
imwrite(I11B, '手写签名-黑白.jpg');
imwrite(I3, '手写签名-粗.jpg');
imwrite(I4, '手写签名-细.jpg');