Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python计算红色、绿色和蓝色通道的总和_Python_Image Processing - Fatal编程技术网

使用Python计算红色、绿色和蓝色通道的总和

使用Python计算红色、绿色和蓝色通道的总和,python,image-processing,Python,Image Processing,我参加了一个Python在线课程,遇到了一行无法解释的代码。我试图计算图像的红色、绿色和蓝色通道的总和,这样做的代码行是: img=plt.imread('480px-audion-EVA.jpg')) 强度=img.总和(轴=2) 为什么使用轴=2来汇总所有三个通道的值?我正在使用matplotlib库。来自: 对于RGB图像,返回值为MxNx3 这意味着图像存储为像素的MxN数组,每个像素具有3元组(R、G、B值)img.sum(axis=2)表示将每个像素的第三个轴(RGB值)相加,返回强

我参加了一个Python在线课程,遇到了一行无法解释的代码。我试图计算图像的红色、绿色和蓝色通道的总和,这样做的代码行是:

img=plt.imread('480px-audion-EVA.jpg'))
强度=img.总和(轴=2)

为什么使用轴=2来汇总所有三个通道的值?我正在使用matplotlib库。

来自:

对于RGB图像,返回值为MxNx3

这意味着图像存储为像素的MxN数组,每个像素具有3元组(R、G、B值)
img.sum(axis=2)
表示将每个像素的第三个轴(RGB值)相加,返回强度值的MxN数组。

axis=2(第三个轴)指示对颜色分量求和:

B = image[:,:,0]; G = image[:,:,1]; R = image[:,:,2]

图像将从文件读入numpy数组。通过阅读本文(尤其是示例),您可以了解axis和数据操作的全部概念:

理解numpysum的“轴”的方法是折叠指定的轴。因此,当它折叠轴0(行)时,它就变成了一行和一列的总和

在二维阵列中,这可能会让人困惑,但是当我们谈论三维、四维、四维时,定义轴是更简单的方法


我找到了你说的原始代码。 我想是:

import matplotlib.pyplot as plt

# Load the image into an array: img
img = plt.imread('myImage.jpg')

# Print the shape of the image
print(img.shape)  # Outputs : (480, 480, 3)
然后计算第三个通道上的强度总和

记住轴是:0、1和2。

# Compute the sum of the red, green and blue channels: intensity
intensity = img.sum(axis=2)
如果打印强度的形状:

# Print the shape of the intensity
print(intensity.shape)  # Output : (480, 480)
这意味着,对于每对位置(axe0_点、axe1_点),将轴2的值相加


例如,如果
img[50,50]=[10,10,10]
,则强度[50,50]=30

什么是
img
?你在用什么图书馆?@iamanigeet很抱歉没有带清楚。我已经编辑了我的问题。