使用numpy和PIL进行简单的图像处理方法

 更新时间:2018年07月02日 15:24:34   作者:unique碎  
今天小编就为大家分享一篇使用numpy和PIL进行简单的图像处理方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

如下所示:

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进行简单的图像处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Pandas探索之高性能函数eval和query解析

    Pandas探索之高性能函数eval和query解析

    这篇文章主要介绍了Pandas探索之高性能函数eval和query解析,小编觉得还是挺不错的,这里分享给大家,供需要的朋友参考。
    2017-10-10
  • python中第三方库pyecharts的使用详解

    python中第三方库pyecharts的使用详解

    这篇文章主要介绍了python中第三方库pyecharts的使用, pyecharts的作用是用来做数据图表,本文给大家介绍了作图的步骤及实例代码,需要的朋友可以参考下
    2022-08-08
  • python中异常的传播详解

    python中异常的传播详解

    大家好,本篇文章主要讲的是python中异常的传播详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • Python中的延迟绑定原理详解

    Python中的延迟绑定原理详解

    这篇文章主要介绍了Python中的延迟绑定原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • python对矩阵进行转置的2种处理方法

    python对矩阵进行转置的2种处理方法

    这篇文章主要介绍了python对矩阵进行转置的2种处理方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python中列表,元组,字典和集合的区别及它们之间的转换

    Python中列表,元组,字典和集合的区别及它们之间的转换

    这篇文章主要介绍了Python中列表,元组,字典和集合的区别及它们之间的转换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Python标准库copy的具体使用

    Python标准库copy的具体使用

    copy模块是Python标准库中用于对象拷贝的核心模块,提供了浅拷贝(copy)和深拷贝(deepcopy)两种对象复制机制,本文主要介绍了Python标准库copy的具体使用,感兴趣的可以了解一下
    2025-04-04
  • Python 遗传算法处理TSP问题详解

    Python 遗传算法处理TSP问题详解

    遗传算法(Genetic Algorithm, GA)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法
    2022-11-11
  • Python用 matplotlib 绘制柱状图

    Python用 matplotlib 绘制柱状图

    这篇文章主要介绍了Python如何用 matplotlib 绘制柱状图,文章对matplotlib模块中详细学习绘制各种柱状图标相关属性和方法,在遇到需要直观展示离散数据点的差异时,我们可以使用bar()或者barh()绘制美观的图表。具有一定的参考价值,需要的朋友可以参考一下
    2021-12-12
  • Python报错no module named torch的几种原因及解决方案

    Python报错no module named torch的几种原因及解决方案

    这篇文章主要给大家介绍了关于Python报错no module named torch的几种原因及解决方案,这是小白时常犯的错,这个报错一般说明在你电脑当前环境下没有安装torch这个模块,但也有其他情况,需要的朋友可以参考下
    2023-10-10

最新评论