python 艺术照片滤镜_[宜配屋]听图阁 - Python实现PS滤镜Fish lens图像扭曲效果示例...
本文实例讲述了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('www.jb51.net')
plt.imshow (img)
plt.axis('off')
plt.figure (2)
plt.title('www.jb51.net')
plt.imshow (img_out)
plt.axis('off')
plt.show()
运行效果:
希望本文所述对大家Python程序设计有所帮助。
python 艺术照片滤镜_[宜配屋]听图阁 - Python实现PS滤镜Fish lens图像扭曲效果示例...相关推荐
- python文件传输模块_[宜配屋]听图阁 - python 使用poster模块进行http方式的文件传输到服务器的方法...
这几天帮内部人员做一个文件传输的小工具,要用http的方式,在用django搭建了个小框架之后,如何进行传输,特别是大文件的传输,成为主要问题.经过查资料,最后选择了通过poster这个模块来进行文件 ...
- python写词法分析器_[宜配屋]听图阁
编译原理老师要求写一个java的词法分析器,想了想决定用python写一个. 目标 能识别出变量,数字,运算符,界符和关键字,用excel表打印出来. 有了目标,想想要怎么实现词法分析器. 1.先进行 ...
- 怎么用python打印照片_[宜配屋]听图阁
这篇文章主要介绍了Python如何使用字符打印照片,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1. 前言 第一次在学校机房里见到计算机,还是上古 ...
- python 判断节假日_[宜配屋]听图阁
不废话,直接上代码Python3.6 签到代码,只需修改url,账号,密码即可,此处是登录时无验证登录,有验证码的自行补充 # -*- coding:utf-8 -*- import json imp ...
- python 内推_[宜配屋]听图阁
本文实例为大家分享了网易有道2017内推编程题:洗牌,供大家参考,具体内容如下 ''' [编程题] 洗牌 时间限制:1秒 空间限制:32768K 洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程 ...
- python中控脚本_[宜配屋]听图阁
由于考勤机与OA对接,OA会在每天定时取考勤机数据,但是需要考勤机是连接状态,所以搜索了下相关教程,写了个脚本自动连接.完全是个Python小白,代码烂,仅作为笔记. 理论上支持所有程序的每天自动开启 ...
- python计算方位角_[宜配屋]听图阁
知道两点坐标,怎么计算两点方向的方位角? 答:首先计算坐标增量dx,dy(两个对应坐标分量相减,终点的减始点的). 若dx,dy中有一个为零时,根据另一个的正负决定方位角(0,90,180,270这四 ...
- 用python画雨滴_[宜配屋]听图阁
本文实例为大家分享了python实现雨滴下落到地面效果的具体代码,供大家参考,具体内容如下 本程序在Windows 64位操作系统下,安装的是Anaconda3-4.2.0 import numpy ...
- python telnet模块 more_[宜配屋]听图阁 - python 处理telnet返回的More,以及get想要的那个参数方法...
问题: 需要循环获取网元返回的某个参数,并计算出平均值. 解决方案: 通过expect解决返回More的问题. 通过具体的参数位置,精确获取到参数. 讨论: 参数位置固定,不好复用. #! usr/b ...
最新文章
- php适合做后台吗,php是否适合做后台长驻程序
- ios视频硬解异常总结,12911总结
- Android在OnCreate中获取控件的宽度和高度
- 吴恩达机器学习(第五章)——Logistic回归
- MyBatis第四天
- 用jsp开发web应用并不是一个高效率的选择
- 暴风影音3 Build version : 3.7.11.13 漏洞
- linux 计算cpu利用率
- c语言表达ch是大写英文字母,如何用C语言输出26个英文字母和其ascii码的对照表...
- 防火墙与路由器的区别
- IM群聊消息的已读未读功能在存储空间方面的实现思路探讨
- 微信小程序开发学习4(视图与逻辑)
- 更新驱动后重启黑屏且进不了bios时的一个解决办法
- 会员权益营销中,设置会员权益的三个标准
- mysql utf8mb4 错_MYSQL保存特殊字符失败,用编码utf8mb4解决错误 Incorrect string value ...解决方法...
- 人工智能在量化领域应用相关论文整理
- MT7688 wifi 调试(二) 如何修改ra0 mac地址
- MVC和MVVM框架介绍
- mongodb robomongo authentication fail
- Group by 后面直接加数字
热门文章
- Hadoop-2.7.1+Zookeeper-3.4.8+HBase-1.2.1+Hive-2.0.0完全分布式集群
- 阿里、腾讯“打包”领跑云计算,两极格局将就此固化?
- Ubuntu20.04安装Nvidia驱动——4060显卡(黑屏解决方法)
- mysql数据库中吧时分秒换算成秒的函数TIME_TO_SEC()
- 全网推荐的理财小白必读书目《小狗钱钱》,有那么好吗?
- 微信小游戏个人开发者如何盈利
- ElasticSearch(6.3.0)的配置和使用全过程
- Fresco高斯模糊使用
- 心理美容,女性最好的化妆品
- 百面机器学习:支持向量机