Python实现PS滤镜Fish lens图像扭曲效果示例


Posted in Python onJanuary 29, 2018

本文实例讲述了Python实现PS滤镜Fish lens图像扭曲效果。分享给大家供大家参考,具体如下:

这里实现 PS 滤镜中的一种几何变换? Fish lens, 对图像做扭曲,感觉就像通过一个凸镜或者凹镜在观察图像一样。

import numpy as np
from skimage import img_as_float
import matplotlib.pyplot as plt
from skimage import io
import math
import numpy.matlib
file_name2='D:/Visual Effects/PS Algorithm/4.jpg'
img=io.imread(file_name2)
img = img_as_float(img)
row, col, channel = img.shape
img_out = img * 1.0
R=(min(row, col)/2)
# gamma > 1 zoom in gamma < 1 zoom out
gamma = 1.5
center_x = (col-1)/2.0
center_y = (row-1)/2.0
xx = np.arange (col) 
yy = np.arange (row)
x_mask = numpy.matlib.repmat (xx, row, 1)
y_mask = numpy.matlib.repmat (yy, col, 1)
y_mask = np.transpose(y_mask)
xx_dif = x_mask - center_x
yy_dif = center_y - y_mask
r = np.sqrt(xx_dif * xx_dif + yy_dif * yy_dif)
theta = np.arctan(yy_dif / xx_dif)
mask_1 = xx_dif < 0
theta = theta * (1 - mask_1) + (theta + math.pi) * mask_1
r_new = R*np.power(r/R, gamma)
x_new = r_new * np.cos(theta) + center_x
y_new = center_y - r_new * np.sin(theta) 
int_x = np.floor (x_new)
int_x = int_x.astype(int)
int_y = np.floor (y_new)
int_y = int_y.astype(int)
for ii in range(row):
  for jj in range (col):
    new_xx = int_x [ii, jj]
    new_yy = int_y [ii, jj]
    if x_new [ii, jj] < 0 or x_new [ii, jj] > col -1 :
      continue
    if y_new [ii, jj] < 0 or y_new [ii, jj] > row -1 :
      continue
    img_out[ii, jj, :] = img[new_yy, new_xx, :]
plt.figure (1)
plt.title('3water.com')
plt.imshow (img)
plt.axis('off')
plt.figure (2)
plt.title('3water.com')
plt.imshow (img_out)
plt.axis('off')
plt.show()

运行效果:

Python实现PS滤镜Fish lens图像扭曲效果示例

Python实现PS滤镜Fish lens图像扭曲效果示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
pandas.DataFrame 根据条件新建列并赋值的方法
Apr 08 Python
Python闭包执行时值的传递方式实例分析
Jun 04 Python
对numpy中的transpose和swapaxes函数详解
Aug 02 Python
对python内置map和six.moves.map的区别详解
Dec 19 Python
Falsk 与 Django 过滤器的使用与区别详解
Jun 04 Python
Python Django Vue 项目创建过程详解
Jul 29 Python
给你一面国旗 教你用python画中国国旗
Sep 24 Python
python中的函数递归和迭代原理解析
Nov 14 Python
Python模块的定义,模块的导入,__name__用法实例分析
Jan 07 Python
django配置app中的静态文件步骤
Mar 27 Python
Python中如何引入第三方模块
May 27 Python
Pygame Event事件模块的详细示例
Nov 17 Python
python实现识别手写数字 python图像识别算法
Mar 23 #Python
Python实现简易版的Web服务器(推荐)
Jan 29 #Python
python实现图像识别功能
Jan 29 #Python
Python使用正则表达式获取网页中所需要的信息
Jan 29 #Python
python实现K最近邻算法
Jan 29 #Python
python简单实现操作Mysql数据库
Jan 29 #Python
Django框架教程之正则表达式URL误区详解
Jan 28 #Python
You might like
php程序之die调试法 快速解决错误
2009/09/17 PHP
PHP Session机制简介及用法
2014/08/19 PHP
PHP利用imagick生成组合缩略图
2016/02/19 PHP
javascript之更有效率的字符串替换
2008/08/02 Javascript
JS中Iframe之间传值的方法
2013/03/11 Javascript
点击弹出层效果&amp;弹出窗口后网页背景变暗效果的实现代码
2014/02/10 Javascript
javaScript年份下拉列表框内容为当前年份及前后50年
2014/05/28 Javascript
jQuery实用密码强度检测
2017/03/02 Javascript
Node.js中的http请求客户端示例(request client)
2017/05/04 Javascript
AngularJs 常用的过滤器
2017/05/15 Javascript
Vue无限滑动周选择日期的组件的示例代码
2018/07/18 Javascript
深入Vue-Router路由嵌套理解
2018/08/13 Javascript
细说Vue组件的服务器端渲染的过程
2019/05/30 Javascript
pageGroup.js实现分页功能
2019/07/27 Javascript
9个JavaScript日常开发小技巧
2020/10/06 Javascript
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
Python中django学习心得
2017/12/06 Python
Python爬虫抓取代理IP并检验可用性的实例
2018/05/07 Python
Python简单过滤字母和数字的方法小结
2019/01/09 Python
djang常用查询SQL语句的使用代码
2019/02/15 Python
Python零基础入门学习之输入与输出
2019/04/03 Python
Python Socketserver实现FTP文件上传下载代码实例
2020/03/27 Python
纯css3无js实现的Android Logo(有简单动画)
2013/01/21 HTML / CSS
会计电算化专业毕业生求职信范文
2013/12/10 职场文书
酒店总经理欢迎词
2014/01/15 职场文书
幼儿园秋游活动方案
2014/01/21 职场文书
超市开业庆典策划方案
2014/05/14 职场文书
六一亲子活动总结
2014/07/01 职场文书
活动总结结尾怎么写
2014/08/30 职场文书
学习礼仪心得体会
2014/09/01 职场文书
购房协议书范本
2014/10/02 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
2014高三学生考试作弊检讨书
2014/12/14 职场文书
幼儿教师个人总结
2015/02/05 职场文书
2016新年感言
2015/08/03 职场文书
Python实现智慧校园自动评教全新版
2021/06/18 Python