用MATLAB填補照片中空白的區域

来源:互联网 发布:js object 遍历 值 编辑:程序博客网 时间:2024/04/19 19:25

和小伙伴去旅行拍了一張照片非常漂亮,可是為甚麼後面還有個頭呀!I AM ANGRY


首先用PS把頭P走


然後空白的地方用MATLAB編程填補一下

代碼如下

function I=ps()    I=imread('after2.jpg');    subplot(1,2,1),imshow(I);    [a,b,c]=size(I);    for j=730:b       for i=21:a          if (I(i,j,1)==255)&&(I(i,j,2)==255)&&(I(i,j,3)==255)              for k=0:10                      I(i-k,j,1)=ans1;                      I(i-k,j,2)=ans2;                      I(i-k,j,3)=ans3;              end              for k=0:20                  if (I(i,j,1)<200)&&(I(i,j,2)<200)&&(I(i,j,3)<200)                      I(i+k,j,1)=ans1;                      I(i+k,j,2)=ans2;                      I(i+k,j,3)=ans3;                  end              end              for k=0:20                  if (I(i,j,1)>250)&&(I(i,j,2)>245)&&(I(i,j,3)>245)                      I(i+k,j,1)=ans1;                      I(i+k,j,2)=ans2;                      I(i+k,j,3)=ans3;                  end              end          else              ans1=I(i-20,j,1);              ans2=I(i-20,j,2);              ans3=I(i-20,j,3);          end       end    end             subplot(1,2,2),imshow(I);     figure(2),imshow(I);   %{     J=double(I);     H=double(imguidedfilter(I))-J+128;     G=imfilter(H,fspecial('gaussian',[3,3],100));     opacity=50;     Dest=(J*(100-opacity)+(J+2*G-256)*opacity)/100;     I=uint8(Dest);     subplot(1,2,2),imshow(I);     %}end
最後還是有黑邊,我沒有用濾波,因為不想影響照片質量。如果哪個大神有更好的方法,請聯絡我。

最後的結果如下所示喵



0 0
原创粉丝点击