使用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中的两个内置模块介绍
Apr 05 Python
详解Swift中属性的声明与作用
Jun 30 Python
Scrapy-redis爬虫分布式爬取的分析和实现
Feb 07 Python
详解 Python 读写XML文件的实例
Aug 02 Python
详解关于Django中ORM数据库迁移的配置
Oct 08 Python
python实现贪吃蛇小游戏
Mar 21 Python
python matplotlib拟合直线的实现
Nov 19 Python
解决python使用list()时总是报错的问题
May 05 Python
pyCharm 实现关闭代码检查
Jun 09 Python
python 网络编程要点总结
Jun 18 Python
bat批处理之字符串操作的实现
Mar 16 Python
请求模块urllib之PYTHON爬虫的基本使用
Apr 08 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/07/17 PHP
phpMyAdmin 链接表的附加功能尚未激活的问题
2010/08/01 PHP
php循环语句 for()与foreach()用法区别介绍
2012/09/05 PHP
php去除数组中重复数据
2014/11/18 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
php实现当前页面点击下载文件的实例代码
2016/11/16 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
JavaScript 常用函数库详解
2009/10/21 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
不到30行JS代码实现Excel表格的方法
2014/11/15 Javascript
Vue.js快速入门实例教程
2016/10/15 Javascript
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
vue项目总结之文件夹结构配置详解
2017/12/13 Javascript
opencv 识别微信登录验证滑动块位置
2018/08/07 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
2018/11/29 Javascript
vue实现滑动超出指定距离回顶部功能
2019/07/31 Javascript
windows实现npm和cnpm安装步骤
2019/10/24 Javascript
[48:11]完美世界DOTA2联赛 Magma vs GXR 第二场 11.07
2020/11/10 DOTA
Python算法之栈(stack)的实现
2014/08/18 Python
Python六大开源框架对比
2015/10/19 Python
理解Python中的绝对路径和相对路径
2017/08/30 Python
tensorflow中next_batch的具体使用
2018/02/02 Python
对python中矩阵相加函数sum()的使用详解
2019/01/28 Python
Python IDE Pycharm中的快捷键列表用法
2019/08/08 Python
Python matplotlib可视化实例解析
2020/06/01 Python
Python 调用 ES、Solr、Phoenix的示例代码
2020/11/23 Python
介绍CSS3使用技巧5个
2009/04/02 HTML / CSS
美国在线眼镜商城:Eyeglasses.com
2017/06/26 全球购物
测绘工程系学生的自我评价
2013/11/30 职场文书
好矿嫂事迹材料
2014/01/21 职场文书
社区学雷锋活动策划方案
2014/01/30 职场文书
陈欧广告词
2014/03/14 职场文书
开门红主持词
2014/04/02 职场文书
退伍军人感言
2015/08/01 职场文书
《当代神农氏》教学反思
2016/02/23 职场文书
Idea连接MySQL数据库出现中文乱码的问题
2021/04/14 MySQL