我想要做的是拍摄我读入的图像文件(scipy.misc.imread(file))并将每个RGB值更改为该像素的三个值的平均值。
例如,我可以在一个像素上执行此操作:
import numpy as np
from scipy import misc
import matplotlib.pyplot as plt
from skimage import data
img = misc.imread('./path/to/file.jpg')
print(img[200, 200]) #[145 165 155]
print(img[200, 200]) = int(np.sum(img[200, 200])/3) # sets RGB values at img[200, 200] to the average of the RGB values in this case, 155
print(img[200, 200]) # changed to [155 155 155]
但是,我是numpy和ndarrays的新手,我想知道如何使用切片将其应用于图像中的每个像素。这可能吗?我无法理解如何迭代整个ndarray并引用适当的值来求和。
欢迎任何帮助!