python rgb2gray,skimage.color中的rgb2gray是如何实现彩色图片灰度化

本文探讨了Python中使用skimage.color.rgb2gray()函数与手动实现RGB转灰度的区别。通过分析公式,发现skimage的灰度转换基于校准的RGB值,而手动实现则采用标准的0.299:0.587:0.114比例。实验证明,尽管计算方法不同,但两种方法在视觉效果上输出的灰度图并无明显差异。

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

最近在分析彩色图片灰度化的过程中使用到了一个函数skimage.color中的rgb2gray(),但是与自己所实现的灰度化公式在计算结果上出入较大,因此特意写这篇文章记录一下对比过程.

首先,看一下RGB转Gray的计算公式 : Gray = R*0.299 + G*0.587 + B*0.114

用Python代码手动实现:

# 手动实现

import numpy as np

import matplotlib.pyplot as plt

import cv2

# 读取图片

img = cv2.imread("lenna.png")

# cv2.imshow("lenna_png", img)

# cv2.waitKey(0)

img_height, img_weight, channel = img.shape

dest = np.ndarray((img_height,img_weight))

for img_y in range(img_height):

for img_x in range(img_weight):

R = img[img_y, img_x, 2]

G = img[img_y, img_x, 1]

B = img[img_y, img_x, 0]

gray_value = float(R*0.299 + G*0.587 + B*0.114) / 255

# print(gray_value)

dest[img_y, img_x] = gray_value

# 将数据输出到txt文件中方便后面对比数据差异

fp = open("dat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值