这里给出灰度图像的模糊算法,彩色图像只要分别对三个通道做模糊即可。

%%%  radiation blur

%%%  



clc;

clear all;

close all;



I=imread('4.jpg');

I=double(I);

% Image=I;



Image=0.2989 * I(:,:,1) + 0.5870 * I(:,:,2) + 0.1140 * I(:,:,3);

[row, col]=size(Image);

Image_new(1:row,1:col)=255;

Center_X=(col+1)/2;

Center_Y=(row+1)/2;

alpha=0.85;



for i=1:floor(Center_Y)

    for j=floor(Center_X)+1:col

        

        % 第一象限

        x1=j-Center_X;

        y1=Center_Y-i;

        T1=Image(i,j);

        

        % 第三象限

        x3=-x1;

        y3=-y1;

        x_image=floor(Center_X+x3);

        y_image=floor(Center_Y-y3);

        i3=y_image;

        j3=x_image;

        T3=Image(y_image,x_image);

        

        % 第二象限

        x2=-x1;

        y2=y1;

        x_image=floor(Center_X+x2);

        y_image=floor(Center_Y-y2);

        i2=y_image;

        j2=x_image;

        T2=Image(y_image,x_image);

        

        %第四象限

        x4=x1;

        y4=-y1;

        x_image=floor(Center_X+x4);

        y_image=floor(Center_Y-y4);

        i4=y_image;

        j4=x_image;

        T4=Image(y_image,x_image);

        

        k=y1/x1;

        x_start=x1*alpha;

        y_start=k*x_start;

        x_end=x1;

        y_end=y1;

        x=x_start;

        y=y_start;

        

        if(x1>y1)

            Num_Pixel=floor(x_end-x_start)+1;

            for x=x_start:x_end-1

                y0=k*(x+1);               

                % 第一象限

                    x1=x+1;

                    y1=round(y0);

                    % y=y+1;

                    x_image=floor(Center_X+x1);

                    y_image=floor(Center_Y-y1);

                    T1=T1+Image(y_image,x_image);

                  

                 % 第三象限

                    x3=-x1;

                    y3=-y1;

                    x_image=floor(Center_X+x3);

                    y_image=floor(Center_Y-y3);

                    T3=T3+Image(y_image,x_image);

                    

                  % 第二象限

                    x2=-x1;

                    y2=y1;

                    x_image=floor(Center_X+x2);

                    y_image=floor(Center_Y-y2);

                    T2=T2+Image(y_image,x_image);

                    

                  % 第四象限

                    x4=x1;

                    y4=-y1;

                    x_image=floor(Center_X+x4);

                    y_image=floor(Center_Y-y4);

                    T4=T4+Image(y_image,x_image);

            end

        else

            Num_Pixel=floor(y_end-y_start)+1;

            for y=y_start:y_end-1

                    x0=(y+1)/k;

                    % 第一象限

                    x1=floor(x0);

                    y1=y+1;

                    x_image=floor(Center_X+x1);

                    y_image=floor(Center_Y-y1);

                    T1=T1+Image(y_image,x_image);

                  

                    % 第三象限

                    x3=-x1;

                    y3=-y1;

                    x_image=floor(Center_X+x3);

                    y_image=floor(Center_Y-y3);

                    T3=T3+Image(y_image,x_image);

                    

                    % 第二象限

                    x2=-x1;

                    y2=y1;

                    x_image=floor(Center_X+x2);

                    y_image=floor(Center_Y-y2);

                    T2=T2+Image(y_image,x_image);

                    

                    % 第四象限

                    x4=x1;

                    y4=-y1;

                    x_image=floor(Center_X+x4);

                    y_image=floor(Center_Y-y4);

                    T4=T4+Image(y_image,x_image);

            end

        end

        Image_new(i,j)=T1/Num_Pixel;

        Image_new(i2,j2)=T2/Num_Pixel;

        Image_new(i3,j3)=T3/Num_Pixel;

        Image_new(i4,j4)=T4/Num_Pixel;

    end

end



imshow(Image_new/255);

原图

效果图

效果图

PS 滤镜—— 径向模糊的更多相关文章

  1. Python: PS滤镜--径向模糊

    本文用 Python 实现 PS 滤镜中的径向模糊特效,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/details/3 ...

  2. OpenCV——PS 滤镜, 浮雕效果

    具体的算法原理可以参考: PS 滤镜, 浮雕效果 // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITH ...

  3. OpenCV——PS 滤镜, 曝光过度

    算法原理可以参考: PS 滤镜,曝光过度 #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include <io ...

  4. Python: PS 滤镜--水波特效

    本文用 Python 实现 PS 滤镜中的 水波特效 import numpy as np from skimage import img_as_float import matplotlib.pyp ...

  5. Python: PS 滤镜--旋涡特效

    本文用Python 实现 PS 滤镜的旋涡特效,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/details/42215 ...

  6. Python: PS 滤镜--USM 锐化

    本文用 Python 实现 PS 滤镜中的 USM 锐化效果,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/detail ...

  7. Python: PS 滤镜--素描

    本文用 Python 实现 PS 滤镜中的素描特效,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/details/386 ...

  8. Python: PS 滤镜--表面模糊

    本文用 Python 实现 PS 滤镜中的表面模糊,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/details/528 ...

  9. Python: PS 滤镜--旋转模糊

    本文用 Python 实现 PS 滤镜中的旋转模糊,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/details/392 ...

随机推荐

  1. 使用 纯JQuery 进行 表单 验证

    对于JavaScript而言,进行表单数据的验证可谓是很有必要的,而且一般我们都会在网页上先进行一下表单验证,然后服务器端再次进行验证,来确保用户提交数据的准确性.下面就来分享一个JQuery实现的表 ...

  2. Java基本语法-----java数组(一维数组二维数组)

    嘿嘿!你们懂的,又是图片,委屈大家了. java数组(一维数组二维数组) [正在看本人博客的这位童鞋,我看你气度不凡,谈吐间隐隐有王者之气,日后必有一番作为!下面有个"顶"字,你就 ...

  3. 【Netty源码学习】ServerBootStrap

    上一篇博客[Netty源码学习]BootStrap中我们介绍了客户端使用的启动服务,接下来我们介绍一下服务端使用的启动服务. 总体来说ServerBootStrap有两个主要功能: (1)调用父类Ab ...

  4. GSON TypeToken 解决泛型问题

    Java进阶(四)Java反射TypeToken解决泛型运行时类型擦除的问题解决 在开发时,遇到了下面这条语句,不懂,然习之. private List<MyZhuiHaoDetailModel ...

  5. springMVC系列之(四) spring+springMVC+hibernate 三大框架整合

    首先我们要知道Hibernate五大对象:,本实例通过深入的使用这五大对象和spring+springMVC相互结合,体会到框架的好处,提高我们的开发效率 Hibernate有五大核心接口,分别是:S ...

  6. Qt应用程序中设置字体

    Qt应用程序中设置字体 应用程序中经常需要设置字体,例如office软件或者是其他的编辑器软件等等.这里主要涉及到如下几个概念:字体,字号以及风格(例如:粗体,斜体,下划线等等).Qt里面也有对应的类 ...

  7. 【Shader拓展】Illustrative Rendering in Team Fortress 2

    写在前面 早在使用ramp texture控制diffuse光照一文就提到了这篇著名的论文.Valve公司发表的其他成果可见这里.这是Valve在2007年发表的一篇非常具有影响力的文章,我的导师也提 ...

  8. Fedora 20: How to enable SSH

    1. systemctl  enable sshd.service 2. service sshd restart

  9. matlab中 mcc、mbuild和mex命令详解

    先简单的说说mcc.mbuild和mex到底怎么回事: mcc将M文件转换成C/C++文件和相应的MEX包裹文件(需要Matlab编辑器),但在特定条件下可以自动调用mbuild或者mex mex将C ...

  10. DB 查询分析器 6.04 在 Windows 10 上的安装与运行展示

    DB查询分析器 6.04 在 Windows 10 上的安装与运行展示 中国本土程序员马根峰(CSDN专访马根峰:海量数据处理与分析大师的中国本土程序员 http://www.csdn.net/art ...