MATLAB批量为png透明(抠图)图片替换添加背景

说明

最近有个小需求, 需要抠图后将抠图的背景替换为指定图片, 如果一张一张做, 图片多了实在是不好用.

前提

  1. 准备好背景图片, 一张
  2. 准备好目标图片, 很多张
  3. 可以利用powertoys将目标图片统一为与背景图片相同尺寸, 采用填充的办法
  4. 然后将修改好大小的图片放在自己的一个文件夹里, 我这里的目标图片(抠好的)是png格式含有透明信息.
  5. 运行MATLAB脚本

脚本代码

Path = '.\dealwith\';                   % 设置数据存放的文件夹路径, 注意替换为自己的路径, 也就是扣好后调整了大小的图片
File = dir(fullfile(Path,'*.png'));  % 获取文件夹下所有符合后缀名为.png文件的完整信息
FileNames = {File.name}';            % 得到符合后缀名为.png的所有文件的文件名,转换为n行1列%% 文件个数
[file_num,~] = size(FileNames);%% 获取背景图片数据, 也可以是别的图像格式
A1 = imread('自制底板.jpg','jpg');%%开始循环, 设置并行数量, 像素比较大的时候可以节省时间
core = 6;
p = parpool(core); % 这里适合使用并行运算, core是你的计算机的物理核心数, 我的是6核心12线程, 因此设置为6% 根据文件数file_num做循环
for num=1:file_num% 读取第num个目标图片[A2, map, alpha] = imread(strcat(Path ,FileNames{num})); %这里做了简单的路径字符串拼接% figure(2)% f = imshow(A2);% set(f, 'AlphaData', alpha);% 用背景图片数据初始化图片A3A3 = A1;[m,n] = size(alpha);parfor i= 1:mfor j = 1:nk = double(alpha(i,j))/double(255); %将透明通道归一化A3(i,j,:) = k*A2(i,j,:) +  (1-k)*A1(i,j,:); % 根据归一化的透明度按比例将背景与目标进行混合, 保留原透明图片的边缘过度endend
imwrite(A3,strcat('.\ok\',FileNames{num}));%这里的路径建议与前面的区分, 避免直接覆盖
sprintf('%2.2f%%', num/file_num*100) % 简单显示处理完成当前任务的百分比, 也就是:(当前图片数/全部图片数)
end
delete(p)%删除并行池

MATLAB批量为png透明(抠图)图片替换添加背景相关推荐

  1. MATLAB批量按要求重命名图片/文件

    有时候想要按我们要求重命名一些图片,但是又太多,人工太麻烦,可以用matlab批量重命名: clear path ='C:\Users\26594\Desktop\train_images\'; %F ...

  2. matlab导出图片背景_matlab美化图片之添加背景颜色

    background.png The image is generated by myself in matlab. 只是在产生的图案中给想要标注的地方添加背景颜色,同时要求背景颜色在线图的下面,代码 ...

  3. matlab 加入背景,matlab美化图片之添加背景颜色

    background.png The image is generated by myself in matlab. 只是在产生的图案中给想要标注的地方添加背景颜色,同时要求背景颜色在线图的下面,代码 ...

  4. C1—— cesium 离线开发去除在线图片自己添加背景图

    第一步: vsCode全局搜索createDefaultImageryProviderViewModels将providerViewModels里push的全部注释掉(主要是Cesium.js的). ...

  5. 使用ImageMagick将eps批量导出为透明png图片

    一.前言 后文的解释比较啰嗦,这里先上总结论:下载magick软件,在命令行使用下述两行代码: mogrify -density 120 -format png *.eps mogrify -tran ...

  6. matlab出图底色透明

    matlab出图底色透明 使用图片导出功能,保存为png格式,底色即为透明

  7. 如何给PDF文件所有页面添加背景图片

    在很多的时候,大家都会使用到PDF文件,有时编辑好的PDF文档觉得比较单调,需要添加一些背景图片,应该如何操作呢?是否有批量操作能直接给所有页面都添加呢?一起看看下面的文章,就能找到你要的方法啦. 很 ...

  8. Python绘图添加背景图片

    Python绘图添加背景图片 为什么要添加背景图片? 添加背景图片时遇到的问题 1.背景图片不清晰 原始背景图片 绘图后背景图片 添加背景图片Python代码 2.线条在离散点上面 看官,走过路过,不 ...

  9. MATLAB旋转后生成透明背景图片

    1.读入图片 2.旋转图片 3.改变背景颜色 4.抠图 I = imread('0.png');%读取图片 for i=1:1:90I_rotating = imrotate(I,i*-1,'bili ...

最新文章

  1. python中匿名函数的作用_Python 中的匿名函数,你会用吗
  2. Python + Selenium 练习篇 - 获取页面所有邮箱
  3. 在CSS3中,可以利用transform功能来实现文字或图像的旋转、缩放、倾斜、移动这四种类型的变形处理...
  4. 【封装那些事】 缺失封装
  5. 医院的“数据中心”,究竟应该怎么建?
  6. 强/若类型语言 动/静态语言
  7. 最长不下降子序列问题
  8. xp搭建 php环境,windows xp 下 LAMP环境搭建
  9. ssh-keygen实现免密码登陆
  10. MySQL高级知识(七)——索引面试题分析
  11. IOS开发基础知识--碎片14
  12. 信息论和贝叶斯(或许会继续补充)
  13. 关于样本量的快速证明
  14. [置顶]       ibatis框架----控制台输出SQL语句
  15. 怎么样用云服务器进行深度学习
  16. RT_Thread自问自答
  17. 企查查接口full的实现`
  18. 怀旧服背包显示本服务器金,WOW怀旧服1.13.5说明:赠送4个背包格 开放仇恨数值API...
  19. 【直流无刷电机与永磁同步电机有什么区别?】
  20. 利用Python爬虫,对自己的博客进行数据分析

热门文章

  1. jQuery之过关小游戏
  2. IoU、GIoU、DIoU、CIoU
  3. php怎么求阶乘_编写PHP递归函数求10的阶乘。
  4. 丽博的超预期广州建博会:年轻多元、智能科技、直播破界
  5. SSM+Shiro的DEMO
  6. 小程序性能优化之页面预加载方案——让你的小程序运行如飞 集成篇
  7. python基于PHP+mysql母婴用品销售购物平台
  8. linux ca-certificates维护openssl证书
  9. ue4cmd怎么调用_ue4控制台怎么使用,常用命令是那些?
  10. Game Programming with DirectX -- 02[并非3D的3D]