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个矩形并找到具有最小,最大和平均像素数的矩形?谢谢
最佳答案
由于您的图像是二进制图像,因此您可以对这些值求和以得到白色像素的计数。
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()))
使用 slice 来挑选任何矩形,然后在该部分上使用sum()。
关于python - 如何使用Python计算图像上的彩色像素区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18035046/