python图像将某通道颜色改变_在Python中,将3通道rgb彩色图像更改为1通道灰度有多快?...

本文探讨了如何快速将一个4D数组中的40000张32x32 RGB图像转换为灰度图像。通过比较使用自定义函数和OpenCV的cv2.cvtColor方法,发现OpenCV的方法在保持图像强度的同时,速度更快。然而,当使用cv2.cvtColor时,需要注意数据维度的变化,并理解如何保留图像强度。
摘要由CSDN通过智能技术生成

我在一个4D数组中有将近40000个图像,其中包含原始像素数据(示例数、宽度、高度、通道数)。每幅图像的宽度为32像素,高度为32像素,RGB颜色有3个通道。我想将它们更改为灰度图像(从3个具有rgb的通道中选择1个具有强度)。我怎么能做得很快?

我的代码:import pickle

import cv2

training_file = "/train.p"

with open(training_file, mode='rb') as f:

train = pickle.load(f)

X_train = train['features']

def rgb2gray(rgb):

r, g, b = rgb[0], rgb[1], rgb[2]

gray = 0.2989 * r + 0.5870 * g + 0.1140 * b

return gray

X_train_gray = X_train.copy()

for i in range (X_train_gray.shape[0]):

for j in range (X_train_gray.shape[1]):

for k in range (X_train_gray.shape[2]):

rgb = X_train_gray[i,j,k]

gray = rgb2gray(rgb)

X_train_gray[i,j,k] = gray

print("X_train image data shape =", X_train.shape)

print("X_train

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值