2013-08-03 2 views
0
import numpy as np 
from matplotlib import cm 
from matplotlib import pyplot as plt 
import Image 
from scipy import ndimage 
import Image, ImageDraw 
import PIL 
import cv 
import cv2 
from scipy.ndimage import measurements, morphology 
from PIL import Image 
from numpy import * 
from scipy.ndimage import filters 
import pylab 

img = np.asarray(Image.open('test.tif').convert('L')) #read and convert image 
img = 1 * (img < 127) # threshold 

plt.imshow(img, cmap=cm.Greys_r) # show as black and white 
plt.show() 

위의 코드는 검은 색 바탕에 흰색 픽셀을 제공하고 이미지에서 흰색 영역을 계산 한 다음 이미지를 100 개의 사각형으로 분할하고 최소, 최대 및 평균 픽셀 수의 사각형을 찾습니다. 감사합니다파이썬을 사용하여 이미지의 컬러 픽셀 영역을 계산하는 방법은 무엇입니까?

답변

1

이미지가 바이너리이기 때문에 값을 합하여 백 화소의 수를 얻을 수 있습니다.

from PIL import Image 
import numpy as np 

img = np.asarray(Image.open("foo.jpg").convert('L')) 
img = 1 * (img < 127) 

m,n = img.shape 

# use np.sum to count white pixels 
print("{} white pixels, out of {} pixels in total.".format(img.sum(), m*n)) 

# use slicing to count any sub part, for example from rows 300-320 and columns 400-440 
print("{} white pixels in rectangle.".format(img[300:320,400:440].sum())) 

조각을 사용하여 사각형을 골라 내고 해당 부분에 sum()을 사용하십시오.

+0

내부에 최소 및 최대 흰색 픽셀이있는 두 영역 사이의 거리를 계산하는 방법에 대해 조언 해주십시오. 고마워, 너의 책을 읽고있어. – KvasDub

관련 문제