【发布时间】:2021-04-04 15:36:36
【问题描述】:
我正在尝试提取位于特定文件夹(“图像”)中的多个图像的特征。 我想使用 tabulate 包将此功能(灰度、R、G、B、alpha、高度和宽度)插入到表格中。 主要问题是遍历文件夹并提取单个红色、绿色、蓝色通道的平均值,并获得灰度值(如果图像存在于该比例中)。之后,我想将所有信息插入表中。我无法执行任何此操作。 我试过这个代码,但它给了我很多像素值。 我想得到平均值,所以每个频道只需要一个数字。 请问,有人可以帮忙吗?
```
import os
import numpy as np
import cv2
for img in os.listdir(image_path):
img = cv2.imread(os.path.join(image_path, img))
r,g,b = cv2.split(img)
rgb_img = cv2.merge((r,g,b))
x,y,z = np.shape(img)
red = np.zeros((x,y,z),dtype=int)
green = np.zeros((x,y,z),dtype=int)
blue = np.zeros((x,y,z),dtype=int)
for i in range(0,x):
for j in range(0,y):
red[i][j][0] = rgb_img[i][j][0]
green[i][j][1]= rgb_img[i][j][1]
blue[i][j][2] = rgb_img[i][j][2] ```
我不知道任何其他方法,有人可以推荐一个吗?我真的很感激。 谢谢
【问题讨论】:
-
我看不出这段代码如何输出平均像素值。您能否更具体地说明您希望我们在哪些方面提供帮助?
-
你是完美的对!此代码不输出平均值。我这样做是为了尝试推断通道而不是平均值。我的目标是获得文件夹中每个图像的 R、G、B 的平均值,而不需要手动编写每个文件的操作,但希望能够迭代。在获得每个图像的 RGB 的单一平均值后,将数字插入到带有“制表”的表格中。我需要更改所有内容还是可以实现当前代码?
标签: python python-3.x numpy operating-system cv2