Matlab 签名背景透明化

结果展示:

原图:
原图
透明化的图:
透明化的图

贴上代码:

% 一张字图片,背景为白色,字为黑色,现在将其处理后,输出为字为红色,背景为透明的图片。

%%
clc
clear
close all
I = imread('tc.png');
G = rgb2gray(I);  %灰度化
ima = imadjust(G);    %调节灰度图像的亮度或彩色图像的颜色矩阵
bw = im2bw(ima);  %二值化默认值是0.5
figure(1),imshow(bw)
 
level = graythresh(G);    %使用最大类间方差法找到图片的一个合适的阈值
bw2 = im2bw(ima,level);   
figure(2),imshow(bw2)
 
bw3 = ~bw2;   %取反
bw4 = bwareaopen(bw3, 20);
%bw4 = imfill(~bw4,'hole');
figure(3),imshow(bw4)
 
bw5 = ~bw4;
R = I(:,:,1);%矩阵的拆分,所有行列的第1个值
G = I(:,:,2);
B = I(:,:,3);
 
%字体颜色  %0的地方(字体部分)赋值为红色
R(~bw5) = 255;   
G(~bw5) = 0;      
B(~bw5) = 0;
 
%背景颜色 %1的地方(背景部分)赋值为白色
R(bw5) =255;
G(bw5) = 255;
B(bw5) = 255;
rgb = cat(3,R,G,B);   %构建矩阵,3为矩阵的维数
figure(4),imshow(rgb)
 
%透明度
siz = size(I);
alpha = ones(siz(1),siz(2));
alpha(B == 255) = 0;    %取背景部分0 0为透明
imwrite(rgb,'透明.png','Alpha',alpha);

figure(5),imshow(rgb)
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值