首页 > 代码库 > matlab练习程序(波纹扭曲)
matlab练习程序(波纹扭曲)
其实就是用sin或cos对x,y坐标进行变换,处理的时候依然是反向变换。
类似的,用不同的函数能得到不同的扭曲效果,比如log,1/x,exp等等。
效果如下:
代码如下(还给出了如何生成gif图片的代码):
clear all;close all;clc;img=imread(‘lena.jpg‘);[h w]=size(img);wave=[10,100]; %[幅度,周期]newh=h+2*wave(1);neww=w+2*wave(1);rot=0;for i=1:10 imgn=zeros(newh,neww); rot=rot+0.2; for y=1:newh for x=1:neww yy=round((y-wave(1))-(wave(1)*cos(2*pi/wave(2)*x+rot))); %依然是逆变换 xx=round((x-wave(1))-(wave(1)*cos(2*pi/wave(2)*y+rot))); if yy>=1 && yy<=h && xx>=1 && xx<=w imgn(y,x)=img(yy,xx); end end end figure(1); imshow(imgn,[]); imgn(:,:,2)=imgn; %生成gif图片 imgn(:,:,3)=imgn(:,:,1); [I,map]=rgb2ind(mat2gray(imgn),256); imwrite(I,map,‘re.gif‘,‘DelayTime‘,0.1,‘WriteMode‘,‘Append‘); end
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。