PS 滤镜— —水波效果
2015-08-25 15:55
369 查看
clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imread('4.jpg'); I=double(I); Image=I/255; [height, width, depth]=size(Image); wavelength = 20; amplitude = 10; phase = 0; centreX = 0.5; centreY = 0.5; radius = 0; if (radius==0) radius=min(height, width)/2; end icentreX=width*centreX; icentreY=height*centreY; radius2=radius*radius; Image_new=Image; for ii=1:height for jj=1:width dx=jj-icentreX; dy=ii-icentreY; distance2=dx*dx+dy*dy; if (distance2>radius2) x=jj; y=ii; else distance=sqrt(distance2); amount=amplitude * sin(distance / wavelength * 2*pi - phase); amount =amount* (radius-distance)/radius; amount=amount*wavelength/(distance+0.0001); x =jj + dx*amount; y = ii + dy*amount; end % % if (x<=1) x=1; end % % if (x>=width) x=width-1; end; % % if (y>=height) y=height-1; end; % % if (y<1) y=1; end; if (x<=1) continue; end if (x>=width) continue; end; if (y>=height) continue; end; if (y<1) continue; end; x1=floor(x); y1=floor(y); p=x-x1; q=y-y1; Image_new(ii,jj,:)=(1-p)*(1-q)*Image(y1,x1,:)+p*(1-q)*Image(y1,x1+1,:)... +q*(1-p)*Image(y1+1,x1,:)+p*q*Image(y1+1,x1+1,:); end end imshow(Image_new);
参考来源:http://www.jhlabs.com/index.html
原图:
效果图:
相关文章推荐
- 计算机网络组网与配置技术—— 读书笔记4、网络设备
- 数据结构之循环单链表
- 二叉树遍历
- 离线安装ADT 23.0.4遇到的问题与解决方法
- [leetcode][单调性] Next Permutation
- 在js中创建自己定义的对象和变量还有方法
- SYBASE锁类型与常用命令
- cJSON库使用教程
- 排序算法总结
- OpenCV——旋转模糊 (二)
- PHP程序的执行流程
- 【linux】ubuntu 下tomcat安装
- iOS之旅--隐藏(去除)导航栏底部横线
- POJ 2524 Ubiquitous Religions 并查集
- Android 触摸手势基础 官方文档概览
- arm-linux-gcc的下载与安装配置
- js中数组(Array)的排序(sort)注意事项
- Generating SSH keys(远程登或下载免密码)
- ubuntu下面的某些软件安装
- repeater嵌套绑定(GroupBy)