使用numpy和PIL进行简单的图像处理方法


Posted in Python onJuly 02, 2018

如下所示:

from PIL import Image
import numpy as np
# 反相
# a = np.array(Image.open("test.jpg"))
# b = [255, 255, 255] - a
# 灰度,反相
# a = np.array(Image.open("test.jpg").convert('L'))
# b = 255 - a
# 灰度,颜色变谈
# a = np.array(Image.open("test.jpg").convert('L'))
# b = (100/255)*a + 150 # 区间压缩再增加
# 灰度,颜色加重
# a = np.array(Image.open("test.jpg").convert('L'))
# b = 255 * (a/255)**2 # 像素平方
# 转手绘
a = np.array(Image.open('test.jpg').convert('L')).astype('float')
depth = 10.      # (0-100)
grad = np.gradient(a)    #取图像灰度的梯度值
grad_x, grad_y = grad    #分别取横纵图像梯度值
grad_x = grad_x*depth/100.
grad_y = grad_y*depth/100.
A = np.sqrt(grad_x**2 + grad_y**2 + 1.)
uni_x = grad_x/A
uni_y = grad_y/A
uni_z = 1./A

vec_el = np.pi/2.2     # 光源的俯视角度,弧度值
vec_az = np.pi/4.     # 光源的方位角度,弧度值
dx = np.cos(vec_el)*np.cos(vec_az) #光源对x 轴的影响
dy = np.cos(vec_el)*np.sin(vec_az) #光源对y 轴的影响
dz = np.sin(vec_el)    #光源对z 轴的影响

b = 255*(dx*uni_x + dy*uni_y + dz*uni_z)  #光源归一化
b = b.clip(0,255)
im = Image.fromarray(b.astype("uint8"))
im.save("./result.jpg")

以上这篇使用numpy和PIL进行简单的图像处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python3基础之list列表实例解析
Aug 13 Python
使用python开发vim插件及心得分享
Nov 04 Python
python显示生日是星期几的方法
May 27 Python
Python3中的2to3转换工具使用示例
Jun 12 Python
python开发之文件操作用法实例
Nov 13 Python
python字典DICT类型合并详解
Aug 17 Python
Python入门之三角函数全解【收藏】
Nov 08 Python
python主线程捕获子线程的方法
Jun 17 Python
Win10+GPU版Pytorch1.1安装的安装步骤
Sep 27 Python
Django实现网页分页功能
Oct 31 Python
python求最大公约数和最小公倍数的简单方法
Feb 13 Python
使用tkinter实现三子棋游戏
Feb 25 Python
python numpy 显示图像阵列的实例
Jul 02 #Python
Python实现图片拼接的代码
Jul 02 #Python
python远程连接服务器MySQL数据库
Jul 02 #Python
对Python 数组的切片操作详解
Jul 02 #Python
python读取LMDB中图像的方法
Jul 02 #Python
python读写LMDB文件的方法
Jul 02 #Python
对numpy中的数组条件筛选功能详解
Jul 02 #Python
You might like
PHP5 操作MySQL数据库基础代码
2009/09/29 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
2011/09/25 PHP
PHP spl_autoload_register实现自动加载研究
2011/12/06 PHP
介绍一些PHP判断变量的函数
2012/04/24 PHP
解析PHP跨站刷票的实现代码
2013/06/18 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
2014/07/22 PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
2017/02/16 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
jQuery 扩展对input的一些操作方法
2009/10/30 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
2013/02/05 Javascript
利用webqq协议使用python登录qq发消息源码参考
2013/04/08 Javascript
浅析JQuery UI Dialog的样式设置问题
2013/12/18 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
jquery+javascript编写国籍控件
2015/02/12 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
2015/08/24 Javascript
jQuery div拖拽用法实例
2016/01/14 Javascript
JavaScript中输出信息的方法(信息确认框-提示输入框-文档流输出)
2016/06/12 Javascript
jQuery Ajax 实现在html页面实时显示用户登录状态
2016/12/30 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
微信小程序 按钮滑动的实现方法
2017/09/27 Javascript
详解 vue.js用法和特性
2017/10/15 Javascript
微信小程序自定义tabBar组件开发详解
2020/09/24 Javascript
vue 左滑删除功能的示例代码
2019/01/28 Javascript
简单了解微信小程序的目录结构
2019/07/01 Javascript
jQuery AJAX应用实例总结
2020/05/19 jQuery
十个Python程序员易犯的错误
2015/12/15 Python
Django开发中复选框用法示例
2018/03/20 Python
Python返回数组/List长度的实例
2018/06/23 Python
浅谈Python基础—判断和循环
2019/03/22 Python
Tensorflow--取tensorf指定列的操作方式
2020/06/30 Python
python logging 重复写日志问题解决办法详解
2020/08/04 Python
运动会入场解说词
2014/02/07 职场文书
研究生导师评语
2014/12/31 职场文书
黑暗中的舞者观后感
2015/06/18 职场文书
2016年党员干部公开承诺书
2016/03/24 职场文书
windows安装 redis 6.2.6最新步骤详解
2022/04/26 Redis