clc; close all; clear all; path1 = 'e:\img\ds2.jpg'; im1 = imread(path1); [m,n,c] = size(im1); ratio = 400 / min(m,n); im1 = imresize(im1, ratio); [m,n,c] = size(im1); im1 = im2double(im1); figure; imshow(im1); title('原图'); im2 = zeros(m,n,3); figure; times = 0; while times < 20 times = times+1; r1 = rand; r2 = rand; r3 = rand; r4 = rand; for i=1:m ty = i - cos(-i*0.02 *r1*pi + r3 )*m/30; ty = round(ty); ty = min(ty, m); ty = max(1, ty); for j = 1:n tx = j + sin(-j*0.02 *r2*pi + r4)*n/30; tx = round(tx); tx = min(tx, n); tx = max(1, tx); im2(i, j, :) = im1(ty, tx, :); end end imshow(im2); title('matlab哈哈镜'); drawnow; end