MATLAB小白之图片合成
MATLAB之图片合成
将两张图片进行合成,先上代码:
img = imread('b1.png');
%R通道
R = double(img(:,:,1));
%G通道
G = double(img(:,:,2));
%B通道
B = double(img(:,:,3));
%Alpha通道
[I,map,Alpha] = imread('b1.png');
%imshow(Alpha);background = imread('b2.png');
%R通道
R1 = double(background(:,:,1));
%G通道
G1 = double(background(:,:,2));
%B通道
B1 = double(background(:,:,3));%计算参数
a = double(Alpha)/255.00;%三通道合成
img2(:,:,1) = uint8(R .* a + (1-a) .* R1);
img2(:,:,2) = uint8(G .* a + (1-a) .* G1);
img2(:,:,3) = uint8(B .* a + (1-a) .* B1);imshow(img2),title('合成的图片');
imwrite(img2,'combine3.png')
合成结果
代码解释
先上一个元老图
根据上述表达式,就可以得到合成图的步骤,先获取图像的Alpha通道,在图像处理中,Alpha用来衡量一个像素或图像的透明度。在非压缩的32位RGB图像中,每个像素是由四个部分组成:一个Alpha通道和三个颜色分量(R、G和B)。当Alpha值为0时,该像素是完全透明的,而当Alpha值为255时,则该像素是完全不透明。
使用[I,map,Alpha] = imread(‘b1.png’);即可得到。
%Alpha通道
[I,map,Alpha] = imread('b1.png');
imshow(Alpha);
imwrite(Alpha,'Alpha.png')
可得到图像的Alpha通道
再对alpha进行/255处理,即得到参数a,因为获取到的alpha是uint8类型的数据,所以透明部分的值变为了0,不透明以及半透明的变为了1。
%计算参数
a = double(Alpha)/255.00;
下一步,进行图片三通道提取,由于参数是一维的,但是图片却是三维的,因此要取出RGB三通道,对每个通道都进行合成,原图片和背景均要提取出RGB三通道。
img = imread('b1.png');
%R通道
R = double(img(:,:,1));
%G通道
G = double(img(:,:,2));
%B通道
B = double(img(:,:,3));background = imread('b2.png');
%R通道
R1 = double(background(:,:,1));
%G通道
G1 = double(background(:,:,2));
%B通道
B1 = double(background(:,:,3));
最后,进行表达式计算以及三通道混合,既使用R.*a+(1-a).*back(:,:,1);进行合成。
img2(:,:,1) = uint8(R .* a + (1-a) .* R1);
img2(:,:,2) = uint8(G .* a + (1-a) .* G1);
img2(:,:,3) = uint8(B .* a + (1-a) .* B1);
最后的最后。。。。
两张图片大小一定相同!
两张图片大小一定相同!
两张图片大小一定相同!
重要的话说三遍,说多了都是泪,是我太菜了。。。。。
MATLAB小白之图片合成相关推荐
- 手机上怎么在线生成gif?1分钟教你手机图片合成gif
怎样通过手机实现在线制作GIF图片的操作呢?接下来,给大家分享两招gif制作(https://www.gif.cn/)小窍门-[GIF中文网]不需要下载任何软件,小白也能轻松上手.支持原画质导出,图片 ...
- 怎么把四个图片合成一个图片?
怎么把四个图片合成一个图片?关于图片的合成,我们一般都会用到图片处理软件来进行.但是对于一些职场新人来说,他根本不会用一些专业的图片处理软件,那么这个问题对他来说就是非常棘手的.其实遇到这样的问题,新 ...
- 如何将jpg图片变成gif?教你一分钟图片合成gif的方法
Jpg.png.gif格式的图片是我们日常生活中比较常见的三种图片格式.当我们想要将jpg格式的图片变成有趣丰富的gif格式图片时,应该如何完成jpg格式图片转gif制作(https://www.gi ...
- 小猿圈web前端简述canvas如何实现二维码和图片合成
你经常看到活动海报什么的,上都是有各种宣传文案以及二维码形成的,你知道怎么用canvas实现二维码和图片合成,下面小猿圈Linux讲师为你详细介绍一下canvas如何实现二维码和图片合成的. 使用ur ...
- Android 图片合成:添加蒙板效果 不规则相框 透明度渐变效果的实现
Android 图片合成:添加蒙板效果 不规则相框 透明度渐变效果的实现 暂时还未有时间开发这效果,所以先贴出来. 先贴一张效果图,这是一张手机截屏: 左上方的风景图:背景图片 右上方的人物图:前景图 ...
- matlab显示的图片,手动保存时四周有白边
matlab显示的图片,或者用matlab画出来的图片,手动保存时四周有白边. girl = imread('girl.jpg'); imshow(girl); 用File-Save或者Save As ...
- matlab图片拼接变成白的,利用matlab实现对图片的拼接
利用matlab实现对图片的拼接 (图像处理的课堂小作业,简单地手打代码,有问题请联系) 1.效果图 (先看效果图,后思考怎么实现) 原图: 简单拼接: 再进一步操作,加了线: 2.原理 1.matl ...
- 图片合成gif_使用在线图片工具处理静态和动态图片的技巧
图片一般分为两种,一种是静态图片,常用的图片格式有jpg,png等.处理静态图片可用用手机自己带的图片处理工具处理,也能够使用线上的在线作图工具来进行操作,比如找图设计,懒设计,稿定设计等设计类型的网 ...
- 图片合成gif_谈谈有哪些好用的制作GIF的方式
今天咱们谈谈计算机上几种制作 GIF 的方式,而且他们都是免费的,但可能需要你会一点计算机操作技能.本文会简单的介绍一些常用的GIF软件,比较一下功能和上手程度.常见的GIF录制方式大概有这么几种方式 ...
最新文章
- Py之any函数【转载】
- 大厂的 404 页面都长啥样?最后一个绝了...
- 算法提高 身份证排序
- 终于有人能把Telnet跟SNMP讲明白了
- 对gitShell的使用
- golang设置运行CPU数量及sync.Mutex全局互斥锁的使用示例
- flink-jdbc-driver和flink-sql-gateway的作用
- API的非向后兼容性无论如何通常代表着一种比较差的设计
- Nat Biotechnol | 杨弋团队报道RNA光遗传学工具,可时空精确操纵活细胞RNA代谢与功能...
- Javascript基于对象三大特征
- python以二进制读取的文件显示b'b'_python - Python读取二进制文件并解码 - 堆栈内存溢出...
- 最新30款免费好看英文字体下载
- 三维电子沙盘数字沙盘M3DGIS无人机倾斜摄影三维建模
- 全国哀悼日,黑白网页CSS滤镜代码
- python打包deb_python开发将项目打包成deb
- 停止精神内耗 每日分享
- 简单制作百度注册页面
- redis的zadd命令
- 华为云桌面--引领移动办公新潮流
- TRON、ITRON与T-Engine