为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Python中将RGB图像转换为灰度?

如何在Python中将RGB图像转换为灰度?

12345678_0001 2019-07-04 13:43:36
如何在Python中将RGB图像转换为灰度?我试着用matplotlib若要读取RGB图像并将其转换为灰度,请执行以下操作。在MATLAB中,我使用:img = rgb2gray(imread('image.png'));在matplotlib教程他们不包括在内。他们只是在图片中读到import matplotlib.image as mpimg img = mpimg.imread('image.png')然后他们对数组进行切片,但这与我所理解的将RGB转换为灰度不是一回事。lum_img = img[:,:,0]我很难相信numpy或matplotlib没有内置函数,可以从rgb转换为grey。这不是图像处理中常见的操作吗?我编写了一个非常简单的函数,它使用imread再过5分钟。这是可怕的低效率,但这就是为什么我希望一个专业的实现内置。塞巴斯蒂安已经改进了我的功能,但我仍然希望找到内置的一个。MATLAB的(NTSC/PAL)实现:import numpy as npdef rgb2gray(rgb):     r, g, b = rgb[:,:,0], rgb[:,:,1], rgb[:,:,2]     gray = 0.2989 * r + 0.5870 * g + 0.1140 * b    return gray
查看完整描述

3 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

您也可以使用科学图像中转换图像的一些函数。ndarray,就像rgb2gray.

from skimage import colorfrom skimage import io

img = color.rgb2gray(io.imread('image.png'))

注记在此转换中使用的重量被校准为当代CRT荧光粉:y=0.2125 R+0.7154 G+0.0721 B。

或者,您可以通过以下方式读取灰度图像:

from skimage import io
img = io.imread('image.png', as_gray=True)


查看完整回答
反对 回复 2019-07-04
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

始终可以将图像文件从一开始就读取为灰度。imread来自OpenCV:

img = cv2.imread('messi5.jpg', 0)

此外,如果您想要将图像读取为RGB,请进行一些处理,然后将其转换为灰度,您可以使用cvtcolor来自OpenCV:

gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)


查看完整回答
反对 回复 2019-07-04
  • 3 回答
  • 0 关注
  • 2163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信