使用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 相关文章推荐
Python使用email模块对邮件进行编码和解码的实例教程
Jul 01 Python
Python中内置的日志模块logging用法详解
Jul 12 Python
python2 与 pyhton3的输入语句写法小结
Sep 10 Python
pandas 空的dataframe 插入列名的示例
Oct 30 Python
python实现邮件发送功能
Aug 10 Python
python将邻接矩阵输出成图的实现
Nov 21 Python
PyTorch 对应点相乘、矩阵相乘实例
Dec 27 Python
把vgg-face.mat权重迁移到pytorch模型示例
Dec 27 Python
python实现将range()函数生成的数字存储在一个列表中
Apr 02 Python
matplotlib bar()实现多组数据并列柱状图通用简便创建方法
Feb 24 Python
matplotlib画混淆矩阵与正确率曲线的实例代码
Jun 01 Python
教你如何使用Python Tkinter库制作记事本
Jun 10 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
PHP编码规范-php coding standard
2007/03/16 PHP
php操作SVN版本服务器类代码
2011/11/27 PHP
php 启动报错如何解决
2014/01/17 PHP
SAE实时日志接口SDK用法示例
2016/10/09 PHP
PHP单例模式详解及实例代码
2016/12/21 PHP
php文件包含的几种方式总结
2019/09/19 PHP
jquery入门—数据删除与隔行变色以及图片预览
2013/01/07 Javascript
jquery实现图片左右间隔滚动特效(可自动播放)
2013/05/08 Javascript
VS2008中使用JavaScript调用WebServices
2014/12/18 Javascript
jfinal与bootstrap的登录跳转实战演习
2015/09/22 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
2016/06/03 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
2017/01/13 Javascript
jQuery查找和过滤_动力节点节点Java学院整理
2017/07/04 jQuery
Angular实现图片裁剪工具ngImgCrop实践
2017/08/17 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
js实现各浏览器全屏代码实例
2018/07/03 Javascript
json字符串传到前台input的方法
2018/08/06 Javascript
详解swiper在vue中的应用(以3.0为例)
2018/09/20 Javascript
JS 正则表达式验证密码、邮箱格式的实例代码
2018/10/28 Javascript
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
2019/07/13 Javascript
layer父页获取弹出层输入框里面的值方法
2019/09/02 Javascript
vue实现数据控制视图的原理解析
2020/01/07 Javascript
[01:03]PWL开团时刻DAY6——别打我
2020/11/05 DOTA
python实现的系统实用log类实例
2015/06/30 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
基于python的ini配置文件操作工具类
2019/04/24 Python
Django--权限Permissions的例子
2019/08/28 Python
python使用配置文件过程详解
2019/12/28 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
优秀员工自荐书范文
2013/12/08 职场文书
高中数学教学反思
2014/01/30 职场文书
2016年习主席讲话学习心得体会
2016/01/20 职场文书
学习计划是什么
2019/04/30 职场文书
React中的Context应用场景分析
2021/06/11 Javascript
logback 实现给变量指定默认值
2021/08/30 Java/Android