选取一幅包含前景和背景的图像; 利用函数roipoly交互式选取前景区域,生成掩膜图像;利用乘法运算进行抠图; 选取一幅背景图像,并将抠图结果与其进行融合 代码
I=imread('srcImage.jpg'); %前景图
J=imread('background.jpg');%背景图
subplot(2,2,1);imshow(I);title('原始图像');
%掩膜——运用乘法运算
mask=roipoly(I);
subplot(2,2,2);imshow(mask);title('掩膜图像');
%乘法运算不能直接运用于彩色图像
R=I(:,:,1);%红色分量
G=I(:,:,2);%绿色分量
B=I(:,:,3);%蓝色分量
R_cutout=immultiply(R,mask);%运用于红色分量
G_cutout=immultiply(G,mask); %运用于绿色分量
B_cutout=immultiply(B,mask); %运用于蓝色分量
M=cat(3,R_cutout,G_cutout,B_cutout);%三分量合成
subplot(2,2,3);imshow(M);title('抠图');
[a,b]=size(M);
K=M;
for i=1:a
for j=1:b
if M(i,j)~=0
K(i,j)=M(i,j);
else
K(i,j)=J(i,j);
end
end
end
subplot(2,2,4);imshow(K);title('合成图');