zoukankan      html  css  js  c++  java
  • PS 滤镜算法— — 表面模糊

    图像的表面模糊处理,其作用是在保留图像边缘的情况下,对图像的表面进行模糊处理。在对人物皮肤处理上,比高斯模糊更有效。因为高斯模糊在使人物皮肤光洁的同时,也将一些边缘特征如脸部的眉毛、嘴唇等给模糊了,不得不用蒙版小心的抹去这些地方的模糊部分。

    在处理手法上,表面模糊也与其它卷积处理手段不同,如高斯模糊等在处理图像时都是采用统一的卷积矩阵进行,而表面模糊却是每一个像素点都有自己的卷积矩阵,而且还是3(4)套,用以对应于像素的R、G、B(A、R、G、B)分量。所以表面模糊在编程处理时,比其它卷积操作更复杂、更耗时,因为它要对每一个像素计算自己的卷积矩阵。表面模糊编程的难点也在计算卷积矩阵上,其它与一般图像卷积处理一样。

    表面模糊处理有2个参数,即模糊半径和模糊阈值,前者确定模糊的范围,后者确定模糊的程度。模糊范围就是卷积矩阵大小,如模糊半径为1,则模糊矩阵直径为 1×2+1=3,矩阵元素个数为3×3=9,矩阵的中间元素即是当前像素点。

    矩阵元素值的计算公式为:

    wij=1(|IijI0|)2.5T

    其中,T 是阈值,wij 是模板矩阵的元素值,也可以称为权重, Iij 是图像值, I0 是模板矩阵中心的图像值。一般来说,wij 会做一个预处理:

    wij=max(0,wij)

    根据卷积运算,每一个像素通过表面模糊之后的值为:

    Inew=wijIijwij

    clc;
    clear all;
    close all;
    
    addpath('E:Visual EffectsPS Algorithm');
    
    Img=imread('1.jpg');
    Img=double(Img);
    imshow(Img/255);
    
    img_out=Img;
    
    R=Img(:, :, 1);
    G=Img(:, :, 2);
    B=Img(:, :, 3);
    
    radi=5;
    thre=25;
    
    img_out(:, :, 1)=Surface_Blur(R, radi, thre);
    img_out(:, :, 2)=Surface_Blur(G, radi, thre);
    img_out(:, :, 3)=Surface_Blur(B, radi, thre);
    
    figure, imshow(img_out/255);
    
    
    %% surface blur
    
    function I_out=Surface_Blur(I_in, radi, thre)
    
    
    [r, c]=size(I_in);
    
    I_out=I_in;
    
    
    for ii=1+radi : r-radi
        for jj=1+radi : c-radi
    
                patch=I_in (ii-radi:ii+radi, jj-radi:jj+radi);
    
                p0=I_in(ii, jj);
    
                mask_1= repmat(p0, 2*radi+1, 2*radi+1);
    
                mask_2=1-abs(patch-mask_1)/(2.5*thre);
    
                mask_3=max(mask_2, 0);
    
                I_out(ii, jj)=sum(sum(patch.*mask_3))/sum(mask_3(:));
    
        end    
    end
    

    原图:

    这里写图片描述

    效果图:

    这里写图片描述

  • 相关阅读:
    MySQL中的数据类型
    Java中的List集合和迭代器
    关系数据库(MySQL)的规范化、以及设计原则
    了解数据模型、以及MySQL使用的数据模型
    Python中的基本语法
    c++、Java、python对应的编译型语言和解释性语言区别详解
    从码云克隆一个项目
    使用码云来添加远程仓库
    删除Git管理的文件
    LocalDateTime
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9412452.html
Copyright © 2011-2022 走看看