欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MATLAB 手写签名拍照 转换黑白图片 方便插入文件签名

程序员文章站 2022-03-10 15:48:16
...

MATLAB 手写签名拍照 转换黑白图片 方便插入文件签名

手机拍照图片

MATLAB 手写签名拍照 转换黑白图片 方便插入文件签名

签名处理效果

MATLAB 手写签名拍照 转换黑白图片 方便插入文件签名
MATLAB 手写签名拍照 转换黑白图片 方便插入文件签名
MATLAB 手写签名拍照 转换黑白图片 方便插入文件签名

MATLAB代码

 %% 选取图像
 [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');