我有这个样本图像有白色矩形框,里面有一个黑色正方形。 (2个蓝色箭头仅用于说明目的,它们不是图像的一部分)
无论如何都要找出远离图像左边和上边界的黑色方块有多少像素?
如果可能的话,我不想使用OpenCV
,因为剩余的处理工作是在PIL
完成的,如果我必须使用OpenCV
这样做,这可能是一种过度杀伤力操作
仅供参考:图像为JPEG格式,框中始终只有1个黑色方块(无多个方格)。
更新
根据karlphillip的回答,我提出了这段代码。
from PIL import Image
img = Image.open('test.png').convert('1')
pixels = img.load()
xlist = []
ylist = []
for y in xrange(img.size[1]):
for x in xrange(img.size[0]):
if pixels[x, y] == 0:
xlist.append(x)
ylist.append(y)
#4 corners of the black square
xleft = min(xlist)
xright = max(xlist)
ytop = min(ylist)
ybot = max(ylist)
答案 0 :(得分:1)
基于我提到的that link,我能够将以下伪代码组合在一起:
from PIL import Image
img = Image.open('test.png')
pixels = img.load()
for y in xrange(img.size[1]):
for x in xrange(img.size[0]):
if pixels[x, y] == (0, 0, 0):
// black pixel found, add it to a counter variable or something.
此答案演示了如何使用PIL访问和测试图像中的每个像素。