PS滤镜— —波浪效果
2024-10-21 15:44:59
clc;
clear all;
close all;
addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm');
I=imread('4.jpg');
I=double(I);
Image=I/255;
xAmplitude = 25.0;
yAmplitude = 25.0;
xWavelength =32.0
yWavelength = 32.0;
SINE=1;
SAWTOOTH=2;
TRIANGLE=3;
NOISE=4;
[height, width, depth]=size(Image);
Image_new=Image;
wavetype=1;
[ind, g1, g2, g3]=init_arr();
for ii=1:height
for jj=1:width
nx = ii / xWavelength;
ny = jj / yWavelength;
switch wavetype
case 1
fx=sin(nx);
fy=sin(ny);
case 2
fx=mod(nx, 1);
fy=mod(ny, 1);
case 3
fx=triangle(nx);
fy=triangle(ny);
case 4
fx=Noise1(nx, ind, g1);
fy=Noise1(ny, ind, g1);
end
x=jj+xAmplitude * fx;
y=ii+yAmplitude * fy;
% % 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)
imwrite(Image_new, 'out.jpg');
参考来源:http://www.jhlabs.com/index.html
原图:
效果图:
最新文章
- Oracle 11.2.0.4单实例打PSU,OJVM PSU补丁快速参考
- resultMap 映射
- CEPH经常出现slow request的排查解决
- Zookeeper 的学习与运用
- HNOI2016(BZOJ4542) 大数
- atitit.ajax 最佳实践跟框架选型 o99
- sublime text2 中文乱码的解决办法
- Android EditText setOnClickListener事件 只有获取焦点才能响应 采用setOnTouchListener解决
- java命令行HPROF Profiler(转)
- MongoDB基础之五:游标
- java8 按条件过滤集合
- 【Go】优雅的读取http请求或响应的数据
- 月球美容计划之最小生成树(MST)
- Android 的网络编程
- redis分布式锁(转)
- 嵌入式开发之uart---rs232 和rs485 通用自定义通信协议
- ruby冒泡算法删除店铺下的重复评论
- 利用QVOD架设流媒体服务器/电影服务器/vod服务器
- (0)linux下的Mysql安装与基本使用(编译安装)
- 理解 $nextTick 的作用