1. clc;
  2. clear all;
  3. close all;
  4. addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm');
  5. I=imread('4.jpg');
  6. I=double(I);
  7. Image=I/255;
  8. angle = pi/4;
  9. centreX = 0.5;
  10. centreY = 0.5;
  11. radius=200;
  12. amount=0.75;
  13. [height, width, depth]=size(Image);
  14. Image_new=Image;
  15. icentreX = width * centreX;
  16. icentreY = height * centreY;
  17. if ( radius == 0 )
  18. radius=min(icentreX, icentreY);
  19. end
  20. radius2=radius*radius;
  21. for ii=1:height
  22. for jj=1:width
  23. dx = jj-icentreX;
  24. dy = ii-icentreY;
  25. distance = dx*dx + dy*dy;
  26. if (distance>radius2 || distance==0)
  27. x=jj;
  28. y=ii;
  29. else
  30. d = sqrt( distance / radius2 );
  31. t = sin( pi*0.5 * d ).^(-amount);
  32. dx =dx* t;
  33. dy =dy* t;
  34. e = 1 - d;
  35. a = angle * e * e;
  36. s = sin( a );
  37. c = cos( a );
  38. x = icentreX + c*dx - s*dy;
  39. y = icentreY + s*dx + c*dy;
  40. end
  41. if (x<=1) x=1; end
  42. if (x>=width) x=width-1; end;
  43. if (y>=height) y=height-1; end;
  44. if (y<1) y=1; end;
  45. % % if (x<=1) continue; end
  46. % % if (x>=width) continue; end;
  47. % % if (y>=height) continue; end;
  48. % % if (y<1) continue; end;
  49. x1=floor(x);
  50. y1=floor(y);
  51. p=x-x1;
  52. q=y-y1;
  53. Image_new(ii,jj,:)=(1-p)*(1-q)*Image(y1,x1,:)+p*(1-q)*Image(y1,x1+1,:)...
  54. +q*(1-p)*Image(y1+1,x1,:)+p*q*Image(y1+1,x1+1,:);
  55. end
  56. end
  57. imshow(Image_new)
  58. imwrite(Image_new, 'out.jpg');

参考来源:http://www.jhlabs.com/index.html

原图:

效果图:

PS 滤镜— —挤压效果的更多相关文章

  1. Python: PS 滤镜--万花筒效果

    本文用 Python 实现 PS 的一种滤镜效果,称为万花筒.也是对图像做各种扭曲变换,最后图像呈现的效果就像从万花筒中看到的一样: 图像的效果可以参考之前的博客: http://blog.csdn. ...

  2. PS 滤镜— —Marble 效果

    clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imread ...

  3. PS 滤镜— — 万花筒效果

    clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imread ...

  4. PS 滤镜— —水波效果

    clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imread ...

  5. PS 滤镜— — sparkle 效果

    clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imread ...

  6. PS 滤镜— —球面化效果

    clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imread ...

  7. PS滤镜— —波浪效果

    clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imread ...

  8. OpenCV——PS滤镜 水波效果

    // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...

  9. Python: PS 滤镜--旋涡特效

    本文用Python 实现 PS 滤镜的旋涡特效,具体的算法原理和效果可以参考之前的博客: http://blog.csdn.net/matrix_space/article/details/42215 ...

随机推荐

  1. web 网页截取图片

    关于在UIwebview上添加滚动图片 两种滚动手势会混淆,应为webview有webview.scrollview的属性 故参照昨天的随笔 scrollview嵌套解决方案. 本篇随笔主要讲循环使用 ...

  2. app 之间发送文件 ios

    本文转载至 http://www.51094.com/?p=212   第一种: 发送一个正常的  pdf 文件,只要是能读取pdf 的都能得到响应 -(IBAction)openDocumentIn ...

  3. 九度OJ 1338:角斗士 (递归、DP)

    时间限制:3 秒 内存限制:32 兆 特殊判题:否 提交:213 解决:66 题目描述: 角斗士是古罗马奴隶社会的一种特殊身份的奴隶,他们的职责是在角斗场上进行殊死搏斗,为了人们提供野蛮的娱乐.他们的 ...

  4. iPhone快速获取UUID

    1.一张图解决不懂iPhone手机的小白获取UDID的方式

  5. Java和js的区别,以及Java和c的区别

    刚开始的时候我们也搞不清这些概念,不过后来就慢慢清晰了,首先和大家谈谈Java和js的区别,最简单的区别就是一个是后端,一个是前端.   java是纯面向对象语言,javascrip其实和Java是完 ...

  6. Python菜鸟之路:Python基础-模块

    什么是模块? 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护.为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,分组的规则就是把实现了某个 ...

  7. StackOverflow&&Quora&&More 翻译系列——目录

    启动了一个翻译系列,主要收录个人在伯乐在线上翻译的文章,或者在 StackOverflow.Quora 及其他资讯站上发现的好文,选文比较偏个人喜好.希望能够学习.理解文章的同时提高英语水平,并共享知 ...

  8. Card Collector(期望+min-max容斥)

    Card Collector(期望+min-max容斥) Card Collector woc居然在毫不知情的情况下写出一个min-max容斥 题意 买一包方便面有几率附赠一张卡,有\(n\)种卡,每 ...

  9. python+NLTK 自然语言学习处理七:N-gram标注

    在上一章中介绍了用pos_tag进行词性标注.这一章将要介绍专门的标注器. 首先来看一元标注器,一元标注器利用一种简单的统计算法,对每个标识符分配最有可能的标记,建立一元标注器的技术称为训练. fro ...

  10. Symfony 没有找到数据库驱动An exception occured in driver: could not find driver

    如果一直报这个错误, 第一,你本地没有相关的数据库驱动(mysql:-->pdo_myql,postgresql-->pdo_pgsql等); 需要执行 php -m|grep -i pd ...