使用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中偏函数partial用法实例分析
Jul 08 Python
python实现获取Ip归属地等信息
Aug 27 Python
Python实现的读取文件内容并写入其他文件操作示例
Apr 09 Python
Python-接口开发入门解析
Aug 01 Python
用python实现英文字母和相应序数转换的方法
Sep 18 Python
python实现批量文件重命名
Oct 31 Python
深入了解如何基于Python读写Kafka
Dec 31 Python
Python3 元组tuple入门基础
Feb 09 Python
Python 实现简单的客户端认证
Jul 29 Python
python3实现飞机大战
Nov 29 Python
python常量折叠基础知识点讲解
Feb 28 Python
Python中常见的导入方式总结
May 06 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
jQuery EasyUI API 中文文档 - DateBox日期框
2011/10/15 PHP
php利用新浪接口查询ip获取地理位置示例
2014/01/20 PHP
PHP实现通过get方式识别用户发送邮件的方法
2015/07/16 PHP
浅谈PHP链表数据结构(单链表)
2016/06/08 PHP
js 链式延迟执行DOME
2012/01/04 Javascript
ExtJs使用总结(非常详细)
2012/03/22 Javascript
自己封装的javascript事件队列函数版
2014/06/12 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
2014/06/16 Javascript
原生js和jQuery写的网页选项卡特效对比
2015/04/27 Javascript
javascript相关事件的几个概念
2015/05/21 Javascript
在Node.js中使用HTTP上传文件的方法
2015/06/23 Javascript
每天一篇javascript学习小结(Boolean对象)
2015/11/12 Javascript
JS中事件冒泡和事件捕获介绍
2016/12/13 Javascript
javascript实现文字无缝滚动效果
2017/08/26 Javascript
vue中使用axios post上传头像/图片并实时显示到页面的方法
2018/09/27 Javascript
node.js实现为PDF添加水印的示例代码
2018/12/05 Javascript
jQuery位置选择器用法实例分析
2019/06/28 jQuery
为nuxt项目写一个面包屑cli工具实现自动生成页面与面包屑配置
2019/09/29 Javascript
vue 实现超长文本截取,悬浮框提示
2020/07/29 Javascript
解决vue 退出动画无效的问题
2020/08/09 Javascript
Vue 使用typescript如何优雅的调用swagger API
2020/09/01 Javascript
Python统计文件中去重后uuid个数的方法
2015/07/30 Python
python实现图片识别汽车功能
2018/11/30 Python
Python Pexpect库的简单使用方法
2019/01/29 Python
从0开始的Python学习016异常
2019/04/08 Python
Python中 Global和Nonlocal的用法详解
2020/01/20 Python
Python如何转换字符串大小写
2020/06/04 Python
python asyncio 协程库的使用
2021/01/21 Python
澳大利亚首屈一指的在线购物目的地:Kogan.com
2017/02/02 全球购物
Famous Footwear加拿大:美国多品牌运动休闲鞋店
2018/12/05 全球购物
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
个人授权委托书范本
2014/09/14 职场文书
小学运动会报道稿
2014/10/04 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
2014年网络管理员工作总结
2014/12/01 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书