数字图像处理的python实践(1)——RGB转灰度

本文介绍了使用Python的PIL库进行数字图像处理,特别是如何将RGB图像转换为灰度图像。通过理解RGB转灰度的数学原理,作者实现了相关代码,并展示了转换过程。在实践中,注意到Image.fromarray方法要求输入数据格式为unit8。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        之前接触过PIL(Python Image Library)这个python很方便的图像处理的库,其中封装了不少与图像处理相关的内容。最近在从零开始学习数字图像处理,了解了许多处理的数学原理,凡是数学相关的东西,如果没有自己动手算个几次,称不上对这个内容有所了解。

       首先是RGB转灰度图,原理自然是将三个通道的数值计算后得到一个通道的数值。PIL.Image对象有一个方法convert,在官方文档中就写了使用的公式是

L=R*299/1000+G*587/1000+B*114/1000

于是采用相同的公式,通过简单的代码,计算得到的图像和原图像如下。注意,使用Image.fromarray方法接受的对象需要数值格式是unit8,否则会报错。

from PIL import Image
import numpy as np

jpg_path = "C:/Users/60214/Desktop/python_work/DigitalExecution/girl.jpg"

im = Image.open(jpg_path)
imarray = np.array(im)
height, width, _ = imarray.shape

new_imarray = np.zeros((height, width), dtype = 'uint8')

print(new_imarray.dtype)
def RGB2Gray(R, G, B):
	res = int(0.299 * R + 0.587 * G + 0.114 * B)
	if res > 255:
		return 255
	else:
		return res

for i in 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值