图片透明处理的方法

版权声明:本文为博主原创文章,未经博主允许不得转载。

 

图片的透明性,由其属性‘Alpha’ 决定,所以改变图像的‘Alpha‘值则改变透明度
Alpha为与图像分辨率相同大小的矩阵,0为透明,1为不透明。保存图片时,如要保存为
透明图片,须保存为png格式,保存代码为:imwrite(I,'图像名.png','Alpha',alpha)

举例:一张字图片,背景为白色,字为黑色,现在将其处理后,输出为字为红色,背景为透明的图片。
MATLAB实现的代码如下:
%字变为红色,背景变为白色,保存背景为透明的图片

MATLAB实现代码如下:
I=imread(fname1);
mask=rgb2gray(I);
mask1=im2bw(mask);
mask1=~mask1;
y = sum(mask1,2);
indices = find(y>0);
y_up = indices(1);
y_down = indices(end);
x = sum(mask1,1);
indices1 = find(x>0);
x_up = indices1(1);
x_down = indices1(end);
BW=I(y_up:y_down,x_up:x_down);
figure;imshow(BW);
imwrite(BW, 'F:\boss\HeartLungSegment_RadiographicIndexComputation\dtouming.png ','png');
[h,w]=size(BW);

ima=imadjust(mask); %调节灰度图像的亮度或彩色图像的颜色矩阵
bw=im2bw(ima); %二值化默认值是0.5
level=graythresh(mask); %使用最大类间方差法找到图片的一个合适的阈值
bw2=im2bw(ima,level);
bw4 =bwareaopen(bw3, 20);

bw5=~bw4;
R=I(y_up:y_down,x_up:x_down,1);%矩阵的拆分,所有行列的第1个值
G=I(y_up:y_down,x_up:x_down,2);
B=I(y_up:y_down,x_up:x_down,3);


rgb=cat(3,R,G,B); %构建矩阵,3为矩阵的维数
figure,imshow(rgb)
%透明度
siz=size(BW);
alpha=ones(siz(1),siz(2));
alpha(G==255)=0; %取背景部分0 0为透明
imwrite(rgb,'透明.png','Alpha',alpha);

结果如下:

 

                                                                                 原图

 

 

                                                                            处理后的图像

 

转载于:https://www.cnblogs.com/zgy-personal/p/7233657.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值