Python——利用Numpy进行图像变换

前言

首先,不得不说,Python的图像处理功能真的很强!!!
不论是PIL还是numpy,用起来都非常方便,而且易懂。
在这里,给大家分享一下利用numpy来进行图像变换。

正文

原图(Strawberry.jpg)

在这里插入图片描述

进行取反

a = np.array(Image.open('Strawberry.jpg'))
b = [255, 255, 255] - a	# 对图像各像素颜色取反
im = Image.fromarray(b.astype('uint8'))  # 对图像进行数组处理,之后保存
im.save('Strawberry01.jpg')

a中存的是各像素形成的数组,大家可以print(a.shape, a.dtype)看一下,a.shape是指这个数组的维度,a.dtype指的是数组a中存在的数据类型

在这里插入图片描述
uint8是8位无符号整型

在这里插入图片描述

转化为灰度图

c = np.array(Image.open('Strawberry.jpg').convert('L'))
im1 = Image.fromarray(c.astype('uint8'))
im1.save('Strawberry02.jpg')

convert(‘L’)是指将图像进行灰度处理

在这里插入图片描述

对灰度图进行取反

c = np.array(Image.open('Strawberry.jpg').convert('L'))
d = 255 - c  # 也就是对灰度图取反
im1 = Image.fromarray(d.astype('uint8'))
im1.save('Strawberry03.jpg')

在这里插入图片描述

将图像像素值变换到150…250 区间,使各相邻像素色差减小

e = np.array(Image.open('Strawberry.jpg'))
f = (100 / 255) * e + 150  
im2 = Image.fromarray(f.astype('uint8'))
im2.save('Strawberry04.jpg')

(其实为什么是f = (100 / 255) * e + 150 这个公式,我也还没搞懂)
在这里插入图片描述

使较暗的像素值变得更小,一般是使图片颜色更深

g = np.array(Image.open('Strawberry.jpg'))
h = 255 * (g / 255) ** 2  # 像素平方
im3 = Image.fromarray(h.astype('uint8'))
im3.save('Strawberry05.jpg')

在这里插入图片描述

注:
这里的图片和保存图片的地址需在同一目录下的

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值