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

%%%  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. UNIX网络编程——解决TCP网络传输“粘包”问题

    当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API).TCP/IP传输层有两个并列的协议:TCP和UDP.其中TCP(transport contro ...

  2. Mac下hosts文件配置

    工作中总会因为莫名其妙的原因,比如Mac下面打不开某网站,但是在windows 7下面却可以,此时只需两步即可完成在Mac下面上网.在Windows下面Win+R,输入cmd,进入命令行,将在wind ...

  3. Cocos2D实现RPG游戏人物地图行走的跟随效果

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 在一些RPG游戏中,人物队列在地图中行走的时候有时需要实现一个 ...

  4. java的四种引用类型

    java的引用分为四个等级:4种级别由高到低依次为:强引用.软引用.弱引用和虚引用. ⑴强引用(StrongReference) 强引用是使用最普遍的引用.如果一个对象具有强引用,那垃圾回收器绝不会回 ...

  5. UNIX环境高级编程——线程和fork

    当线程调用fork时,就为子进程创建了整个进程地址空间的副本.子进程通过继承整个地址空间的副本,也从父进程那里继承了所有互斥量.读写锁和条件变量的状态.如果父进程包含多个线程,子进程在fork返回以后 ...

  6. A*寻路算法入门(四)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...

  7. 【Vbox】centos虚拟机安装usb网卡驱动

    前面安装增强pack之后 usb设备是可以识别了,但是无法正常使用,应该是无线网卡驱动没有的原因. 查看usb设备 os:centos6.6 内核:2.6.32-504.el6.x86_64 [roo ...

  8. IOC 控制反转(Inversion of Control,英文缩写为IoC)

    在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑. 在这样的齿轮组中,因为是协同工作,如果有一个齿轮出了问题,就可能会影响到整个齿 ...

  9. EBS DBA指南笔记(三)

    第五章 patching   patch的作用:解决应用代码的问题:安装新的特征:更新technology stack组件.打patch不是一个简单的过程,但我们也没必要深究里面每个细节. EBS的p ...

  10. android开发技巧——仿新版QQ锁屏下弹窗

    新版的qq,可以在锁屏下弹窗显示qq消息,正好目前在做的项目也需要这一功能.经过各种试验和资料查找,终于实现,过程不难,但是却有一些地方需要注意. 下面是实现过程. 1.使用Activity,而不是V ...