使用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实现的一只从百度开始不断搜索的小爬虫
Aug 13 Python
Python中列表(list)操作方法汇总
Aug 18 Python
Python的randrange()方法使用教程
May 15 Python
windows下ipython的安装与使用详解
Oct 20 Python
python实现折半查找和归并排序算法
Apr 14 Python
解决pandas 作图无法显示中文的问题
May 24 Python
python实现简易动态时钟
Nov 19 Python
Python3实现的判断回文链表算法示例
Mar 08 Python
python openCV获取人脸部分并存储功能
Aug 28 Python
树莓派3 搭建 django 服务器的实例
Aug 29 Python
Jupyter Notebook 实现正常显示中文和负号
Apr 24 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
Sep 29 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
XAMPP安装与使用方法详细解析
2013/11/27 PHP
yii通过小物件生成view的方法
2016/10/08 PHP
php基于session锁防止阻塞请求的方法分析
2017/08/07 PHP
sina的lightbox效果。
2007/01/09 Javascript
用JavaScript将从数据库中读取出来的日期型格式化为想要的类型。
2009/08/15 Javascript
jquery ajax abort()的使用方法
2010/10/28 Javascript
Javascript异步编程的4种方法让你写出更出色的程序
2013/01/17 Javascript
浅析ajax请求json数据并用js解析(示例分析)
2013/07/13 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
JavaScript中提前声明变量或函数例子
2014/11/12 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
2015/04/22 Javascript
javascript实现动态导入js与css等静态资源文件的方法
2015/07/25 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
jQ处理xml文件和xml字符串的方法(详解)
2016/11/22 Javascript
node.js基于express使用websocket的方法
2017/11/09 Javascript
Vuex 进阶之模块化组织详解
2018/01/12 Javascript
Vue结合Video.js播放m3u8视频流的方法示例
2018/05/04 Javascript
Webpack 4.x搭建react开发环境的方法步骤
2018/08/15 Javascript
Vue中函数防抖节流的理解及应用实现
2020/04/24 Javascript
使用Python下载歌词并嵌入歌曲文件中的实现代码
2015/11/13 Python
Selenium的使用详解
2018/10/19 Python
python基于opencv检测程序运行效率
2019/12/28 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
详解如何解决H5开发使用wx.hideMenuItems无效果不生效
2021/01/20 HTML / CSS
印度尼西亚值得信赖的第一家网店:Bhinneka
2018/07/16 全球购物
学生实习自我鉴定
2013/10/11 职场文书
物理专业大学生职业生涯规划书
2014/02/07 职场文书
单位委托书范本(3篇)
2014/09/18 职场文书
群众路线教育实践活动自我剖析思想汇报
2014/10/04 职场文书
机关党员三严三实心得体会
2014/10/13 职场文书
八月迷情观后感
2015/06/11 职场文书
签证扫盲贴,41个常见签证知识,需要的拿走
2019/08/09 职场文书
python Tkinter的简单入门教程
2021/04/11 Python
python树莓派通过队列实现进程交互的程序分析
2021/07/04 Python
Java结构型设计模式之组合模式详解
2022/09/23 Java/Android