图像背景虚化

来源:互联网 发布:linux vi之后怎么编辑 编辑:程序博客网 时间:2024/04/30 06:48

背景

在一幅摄影作品中,背景虚化可以很好地烘托主体,但是对于一些摄影爱好者来说,大光圈太贵;长焦镜头使用时限制太多;手中相机功能太低……虽条件不足,但又很想拍出主体突出、背景虚化的照片,这时候该怎么办呢?接下来本文简要介绍背景虚化的步骤。

背景虚化

步骤

  • 抠图得到图像的前景区域
  • 对背景使用高斯模糊,得到图层
  • 将原图前景区域叠加到第二步得到的图层对应区域
    注:第一步中,可以使用的抠图算法很多,你可以在这里寻找。
    第二步中,最好使用一些保边模糊的滤波器,这里我使用Domain Transform filter

代码

% Input photographI = imread('pencils.png');I = im2double(I);IR = I(:,:,1);IG = I(:,:,2);IB = I(:,:,3);% Joint imageJ = imread('pencils_joint_depth.png');J = im2double(J);BW = im2bw(J,0.5);% Depth-of-field Examplessigma_s = 10;sigma_r = 0.2;% Edges superimposed.F_nc = NC(I, sigma_s, sigma_r,3,J);% CompositionOut = F_nc;OutR = Out(:,:,1); OutG = Out(:,:,2); OutB = Out(:,:,3); OutR(BW) = IR(BW);OutG(BW) = IG(BW); OutB(BW) = IB(BW);Out = cat(3,OutR,OutG,OutB);% Show results.figure, imshow(I); title('Input photograph');figure, imshow(Out); title('Filtered photograph');

结果

效果

更多阅读

http://www.g-photography.net/old/teach/news_693.html?g4
http://www.alphamatting.com/
http://www.inf.ufrgs.br/~eslgastal/DomainTransform/

1 0