may. 发表于 2015-7-20 22:28:05

matlab程序 图像合成-电视抠像技术基础()

收藏的资料,分享给大家

可以将一个蓝色背景下的图分割出来,再与另一个彩色背景结合

附件包含源程序和图片

f=imread('plane.png');
figure,imshow(f,[]);
X=40;Y=50;
fR=double(f(:,:,1));
fG=double(f(:,:,2));
fB=double(f(:,:,3));
for i=1:165
    for j=1:273
      if abs(fR(i,j)-65)<40&&abs(fG(i,j)-60)<40&&abs(fB(i,j)-200)<=55
            fR(i,j)=0;
            fG(i,j)=0;
            fB(i,j)=0;               
      end
    end
end
for i=1:165
   for j=1:273
       if i>160||j>267
            fR(i,j)=0;
            fG(i,j)=0;
         fB(i,j)=0;
   end
   end
end
f1=fR(1:2:end,1:2:end);
f2=fG(1:2:end,1:2:end);
f3=fB(1:2:end,1:2:end);
ff(:,:,1)=f1;
ff(:,:,2)=f2;
ff(:,:,3)=f3;
ff=mat2gray(ff);
figure,imshow(ff);
g=imread('background.png');
g=mat2gray(double(g));
figure,imshow(g);
ff1=zeros(210,274,3);
ff1(X:X+82,Y:Y+136,1)=f1;
ff1(X:X+82,Y:Y+136,2)=f2;
ff1(X:X+82,Y:Y+136,3)=f3;
ff1=mat2gray(ff1);
figure,imshow(ff1);
for i=1:210
    for j=1:274
      for k=1:3
            if ff1(i,j,k)==0
                ff1(i,j,k)=g(i,j,k);
            end
      end
    end
end
figure,imshow(ff1,[]);
   













            

qs6361036 发表于 2015-7-20 22:46:28

这个厉害 ,果断收藏啦

zw_7627 发表于 2015-7-20 22:52:59

帮顶下,{:smile:}

随风飘旭 发表于 2015-7-20 23:06:18

顶,图像处理
页: [1]
查看完整版本: matlab程序 图像合成-电视抠像技术基础()