2017-12-04 1 views
0

내가하고 싶은 것은 scipy.misc.imread (file)에서 읽은 이미지 파일을 가져 와서 모든 개별 RGB 값을 평균 3 개로 변경하는 것입니다. 해당 픽셀의 값.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] 

그러나, 나는 NumPy와에 새로 온 사람과 ndarrays 나는 모든이를 적용하는 방법을 알고 싶어요 슬라이싱을 사용하여 이미지의 픽셀. 이것이 가능한가? 전체 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