Path ='E:\兔子1\'; % 原图路径
File = dir(fullfile(Path,'*.png')); % 获取所有.png图片
save_path='E:\兔子\'; % 保存路径
Beijing = imread('E:\嗷.png'); %获取背景图片
%%
FileNames = {File.name}';
[file_num,~] = size(FileNames);
for num=1:file_num
% 读取第num个目标图片
[Yuantu, map, alpha] = imread(strcat(Path ,FileNames{num}));
result = Beijing;
[m,n] = size(alpha);
for i= 1:m
for j = 1:n
k = double(alpha(i,j))/double(255); %将透明通道归一化
result(i,j,:) = k*Yuantu(i,j,:) + (1-k)*Beijing(i,j,:); % 根据归一化的透明度按比例将背景与目标进行混合, 保留原透明图片的边缘过度
end
end
imwrite(result,strcat(save_path,FileNames{num}));
sprintf(' %d/%d.',num,file_num)%显示进度(当前图片数/全部图片数)
end