2017-12-04 20 views
0

私が読んでいる画像ファイル(scipy.misc.imread(file))を取って、各RGB値を平均値そのピクセルの値。しかし、私はnumpyのとndarraysに新たなんだと私はすべてにこれを適用する方法を知りたい3d numpy配列をスライスしてピクセルの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] 

:たとえば、私はこのような何かをやって1つの個々のピクセルでこれを

を行うことができますスライシングを使用して画像内のピクセルを拡大します。これは可能ですか?私は、ndarray全体を反復処理し、適切な値を合計して設定する方法を理解するのに問題があります。

何か助けてください!

答えて

0

numpyを使用して平均をとることができます。

import numpy as np 
import matplotlib.pyplot as plt 

from scipy import misc 

img = misc.imread('baboon.png') 
mean_img = img.mean(axis=2) 

plt.imshow(mean_img, cmap=plt.cm.gray) 
plt.show() 

enter image description here enter image description here