使用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 使用sys.stdin和fileinput读入标准输入的方法
Oct 17 Python
Python常用爬虫代码总结方便查询
Feb 25 Python
基于python生成器封装的协程类
Mar 20 Python
Python第三方库face_recognition在windows上的安装过程
May 03 Python
python 动态迁移solr数据过程解析
Sep 04 Python
python3获取url文件大小示例代码
Sep 18 Python
django实现类似触发器的功能
Nov 15 Python
Python itertools.product方法代码实例
Mar 27 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
Jun 03 Python
keras 自定义loss model.add_loss的使用详解
Jun 22 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
Jul 21 Python
python解包概念及实例
Feb 17 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 函数使用方法与函数定义方法
2010/05/09 PHP
PHP性能优化 产生高度优化代码
2011/07/22 PHP
基于PHP遍历数组的方法汇总分析
2013/06/08 PHP
php 如何获取数组第一个值
2013/08/06 PHP
php写入txt乱码的解决方法
2019/09/17 PHP
了解jQuery技巧来提高你的代码(个人觉得那个jquery的手册很不错)
2012/02/10 Javascript
JavaScript分析、压缩工具JavaScript Analyser
2014/12/31 Javascript
javascript实现获取浏览器版本、浏览器类型
2015/12/02 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
2016/06/03 Javascript
canvas 画布在主流浏览器中的尺寸限制详细介绍
2016/12/15 Javascript
详解angular用$sce服务来过滤HTML标签
2017/04/11 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
2017/09/19 Javascript
浅谈Node模块系统及其模式
2017/11/17 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
在Angular中使用JWT认证方法示例
2018/09/10 Javascript
Vue2(三)实现子菜单展开收缩,带动画效果实现方法
2019/04/28 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
js实现指定时间倒计时效果
2019/08/26 Javascript
微信小程序录音实现功能并上传(使用node解析接收)
2020/02/26 Javascript
vue实现表单未编辑或未保存离开弹窗提示功能
2020/04/08 Javascript
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
2020/08/13 Javascript
Sanic框架Cookies操作示例
2018/07/17 Python
对python 命令的-u参数详解
2018/12/03 Python
django 邮件发送模块smtp使用详解
2019/07/22 Python
python如何统计代码运行的时长
2019/07/24 Python
荷兰优雅女装网上商店:Heine
2016/11/14 全球购物
西班牙在线宠物商店:zooplus.es
2017/02/24 全球购物
英国花园药房: The Garden Pharmacy
2017/12/28 全球购物
德国户外装备、登山运动和攀岩商店:tapir store
2020/02/12 全球购物
Linux中如何用命令创建目录
2015/01/12 面试题
创业计划书模版
2014/02/05 职场文书
体育专业自荐书
2014/05/29 职场文书
幼儿园大班教师个人总结
2015/02/05 职场文书
使用Nginx搭载rtmp直播服务器的方法
2021/10/16 Servers
python神经网络ResNet50模型
2022/05/06 Python