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个矩形,并找到具有最小、最大和平均像素数的矩形?谢谢
发布于 2013-08-04 04:04:23
由于您的图像是二进制的,因此您可以将这些值相加,以获得白色像素的计数。
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()。
https://stackoverflow.com/questions/18035046
复制相似问题