clc;
clear all;
close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imread('4.jpg');
I=double(I);
Image=I/255; xOffset=100;
yOffset=200;
warp=1; [height, width, depth]=size(Image); if (warp)
while(xOffset<0)
xOffset=xOffset+width;
end
while(yOffset<0)
yOffset=yOffset+height;
end xOffset=mod(xOffset, width);
yOffset=mod(yOffset, height);
end Image_new=Image; for i=1:height for j=1:width if (warp)
x=mod(j+width-xOffset, width);
y=mod(i+height-yOffset, height);
else
x=j-xOffset;
y=i-yOffset;
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(i,j,:)=(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

原图:

效果图:

最新文章

  1. 利用JS实现自定义滚动条
  2. Oracle 使用小计(4)
  3. Base64编码解码
  4. 性能监视器(SSAS)
  5. .NET DLL 保护措施详解(四)各操作系统运行情况
  6. 第二十章、启动流程、模块管理与 Loader grub
  7. 我的第二篇--nginx安装问题之路径问题
  8. 我的vi/vim配置文件
  9. 记录一次坑爹的VM连接主机的路程
  10. Snow and Rainbow
  11. 【面试题】Java实现String的IndexOf方法
  12. 版本控制工具 - Git
  13. 学习笔记之English
  14. Webpack-dev-server的proxy用法
  15. C# AESCBC256 与 java AESCBC256 加解密
  16. 吐槽下mac的打印机设置
  17. Springboot学习笔记(六)-配置化注入
  18. Qt中的角度转弧度
  19. 深入理解php内核
  20. Fix &quot;Drives are running out of free space&quot; Error in SharePoint Health Analyzer

热门文章

  1. Android中读取图片EXIF元数据之metadata-extractor的使用
  2. dede中可以用系统设置中的添加新变量来调用频繁改变的文字内容
  3. HP Vertica Analytics Platform 评測
  4. modelsim-altera IP核仿真
  5. Chrome自带恐龙小游戏的源码研究(四)
  6. java 中 wait和notify的用法
  7. hashCode与equals的作用与区别及应当注意的细节
  8. JAVA进阶-多线程(2)
  9. 巧用Excel提高工作效率
  10. 多媒体开发之---live555的多线程支持,原本只是单线程,单通道