博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
matlab练习程序(水波特效)
阅读量:6426 次
发布时间:2019-06-23

本文共 1899 字,大约阅读时间需要 6 分钟。

还记得原来写过一个对。

这次实现的是水波特效,其实就是通过正余弦函数表示波纹中心位置慢慢向外扩散,通过叠加衰减因子使振幅不断减小,进而产生水波的效果。

效果如下:

原图:

波纹特效:

matlab代码如下:

clear all;close all;clc;cenH=128;       %波纹中心cenW=128;R=80;           %扩散半径amplitude =3;   %幅度wavelength=30;  %波长phase =20;      %相位img = double(imread('lena.jpg'));imshow(img,[])[H, W] = size(img);imgn=zeros(H,W);ii=1;jj=1;for i=1:H   for j=1:W        dy = i-cenH;       dx = j-cenW;       dis=dx*dx+dy*dy;       if dis>R*R || dis==0          pix=[i j];                else            dis=sqrt(dis);            amount= amplitude * sin(dis/wavelength * 2*pi - phase);            amount = amount*(R-dis)*wavelength/(R*dis);            ii=(i+dy*amount);            jj=(j+dx*amount);                        if ii<=1               ii=1;             end                       if jj<=1               jj=1;             end                         if ii>=H               ii=H ;            end                        if jj>=W                jj=W;            end                            pix=[ii jj];       end                       float_Y=pix(1)-floor(pix(1));        float_X=pix(2)-floor(pix(2));                pix_up_left=[floor(pix(1)) floor(pix(2))];          %四个相邻的点       pix_up_right=[floor(pix(1)) ceil(pix(2))];       pix_down_left=[ceil(pix(1)) floor(pix(2))];       pix_down_right=[ceil(pix(1)) ceil(pix(2))];               value_up_left=(1-float_X)*(1-float_Y);              %计算临近四个点的权重       value_up_right=float_X*(1-float_Y);       value_down_left=(1-float_X)*float_Y;       value_down_right=float_X*float_Y;                     imgn(i,j)=value_up_left*img(pix_up_left(1),pix_up_left(2))+ ...                 value_up_right*img(pix_up_right(1),pix_up_right(2))+ ...                 value_down_left*img(pix_down_left(1),pix_down_left(2))+ ...                 value_down_right*img(pix_down_right(1),pix_down_right(2));   endendfigure;imshow(imgn,[])imwrite(mat2gray(imgn),'imgn.jpg')

参考:

转载地址:http://jayga.baihongyu.com/

你可能感兴趣的文章
第一篇
查看>>
Istio 服务部署
查看>>
跟随外部世界的变化而变化
查看>>
mybatis之一:基本应用
查看>>
我的友情链接
查看>>
CentOS6.3下部署文件恢复神器extundelete
查看>>
Windows 2003 Server安全配置完整篇
查看>>
如何安装Oracle Database 11g数据库
查看>>
IPSEC ××× 的配置实例
查看>>
成人学习国画可能产生哪些错误的思想?
查看>>
百度地图笔记_多边形覆盖物区域加标签
查看>>
cocos2dx内存管理机制
查看>>
C语言中的内存分配
查看>>
Java异常处理-----运行时异常(RuntimeException)
查看>>
7、Libgdx网络操作
查看>>
普通电视串口 安装使用
查看>>
【学习/模板】tarjan割点
查看>>
PHP中常用的魔术方法
查看>>
C#反射----字段
查看>>
C#json操作
查看>>