图片透明处理的方法

Posted 天马行空——艾灵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图片透明处理的方法相关的知识,希望对你有一定的参考价值。

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

 

图片的透明性,由其属性‘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);

结果如下:

 

                                                                                 原图

 

 

                                                                            处理后的图像

 

以上是关于图片透明处理的方法的主要内容,如果未能解决你的问题,请参考以下文章

ps抠图背景怎么变透明

怎么把图片背景变成透明

图片处理的时候怎样把边框中间部分变成透明?

Python PIL调整图片大小尺寸和转换图片格式,removebg改变图片背景透明化处理

我要一张完全透明的图片 就是那种看不见的 透明的

word文档如何设置图片背景透明