clc;
clear all;
close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imread('4.jpg');
Image=double(I)/255*0; [height, width, depth]=size(Image); rays = 200;
radius=100;
baseAmount = 1.0;
ringAmount = 0.25;
rayAmount = 0.15;
color = [1.0, 1.0, 1.0];
centreX = 0.7;
centreY = 0.3;
ringWidth = 1.5;
linear = 0.025;
gauss = 0.005;
mix = 0.50;
falloff = 5.0;
sigma=radius/6; icentreX = centreX*width;
icentreY = centreY*height; [p, g1, g2, g3]=init_arr(); Img_new=Image; for ii=1:height
for jj=1:width dx = jj-icentreX;
dy = ii-icentreY;
distance=sqrt(dx*dx+dy*dy); a = exp(-distance*distance*gauss)*mix + exp(-distance*linear)*(1-mix); a=a*baseAmount; if (distance > radius + ringWidth)
a =lerp((distance - (radius + ringWidth))/falloff, a, 0);
end if (distance < radius - ringWidth || distance > radius + ringWidth)
ring = 0;
else
ring = abs(distance-radius)/ringWidth;
ring = 1 - ring*ring*(3 - 2*ring);
ring = ring*ringAmount;
end a=a+ring; angle =atan2(dx, dy)+pi;
angle = (mod(angle/pi*17 + 1.0 + Noise1(angle*10, p, g1), 1.0) - 0.5)*2;
angle = abs(angle);
angle = angle.^5; b = rayAmount * angle / (1 + distance*0.1);
a = a + b; a=min(max(0,a),1); r=Image(ii, jj, 1);
g=Image(ii, jj, 2);
b=Image(ii, jj, 3); Img_new(ii, jj, 1)=lerp(a, r, color(1));
Img_new(ii, jj, 2)=lerp(a, g, color(2));
Img_new(ii, jj, 3)=lerp(a, b, color(3)); end
end imshow(Img_new);
imwrite(Img_new, 'out.jpg');

参考来源:http://www.jhlabs.com/index.html

效果图:

PS 滤镜— — 镜头光晕的更多相关文章

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

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

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

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

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

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

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

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

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

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

  6. Python: PS 滤镜--素描

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

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

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

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

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

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

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

随机推荐

  1. jquery插件中使用ajax并且获取使用插件的对象

    jquery插件中使用ajax后无法在里面获取this 解决办法是在函数内使用ajax前声明变量 $this=this 然后再ajax中使用$this

  2. VI使用说明 (转)

    vi使用方法(ZT)         vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Lin ...

  3. WPF之DataGrid篇:DataGridComboBoxColumn

    准备数据源   1 准备数据源.基类为Student,数据对象为Student3,数据集为StuList3. END 编辑DataGrid显示列   1 若要填充下拉列表,请首先使用下列选项之一设置 ...

  4. 【WPF】ComboBox:根据绑定选取、设置固定集合中的值

    问题场景 我有一个对象,里面有一个属性叫Limit,int类型.虽然int可取的范围很大,我想要在用户界面上限制Limit可取的值,暂且限制为5.10.15.20. 所以ComboBox绑定不是绑定常 ...

  5. ArcGIS api for javascript 离线部署

    一.说明: 1.本篇文章以及之后的相关的文章所使用的ArcGIS API for javascript 的版本是3.3.初学者为了学习简单,可以引用在线的 Javascript.但是如果只能连接内网, ...

  6. mac sublime text 3 add ctags plugin

    https://www.smslit.top/2015/11/14/macSTctags-Develop/ ctags插件for sublime text项目和ctags源码项目都在github上.

  7. 【学习笔记】快速傅里叶变换(FFT)

    [学习笔记]快速傅里叶变换 学习之前先看懂这个 浅谈范德蒙德(Vandermonde)方阵的逆矩阵的求法以及快速傅里叶变换(FFT)中IDFT的原理--gzy hhh开个玩笑. 讲一下\(FFT\) ...

  8. 推荐20个非常有帮助的web前端开发教程

    1. CSS Vocabulary 一个伟大的指向和点击的小应用程序,让你加高速度掌握 CSS 语法的各个不同部分,学习各个属性的正确的名称. 2. Liquidapsive 一个简单的信息化布局.通 ...

  9. JSP中的内容布局

    参考 :https://stackoverflow.com/questions/10529963/what-is-the-best-way-to-create-jsp-layout-template ...

  10. crm高速开发之EntityCollection

    /* 创建者:菜刀居士的博客  * 创建日期:2014年07月07号  */ namespace Net.CRM.OrganizationService {     using System;     ...