Python在JPEG图像上找到黑色方块的坐标

时间:2013-12-24 03:22:37

标签: python opencv python-2.7 image-processing python-imaging-library

我有这个样本图像有白色矩形框,里面有一个黑色正方形。 (2个蓝色箭头仅用于说明目的,它们不是图像的一部分)

enter image description here

无论如何都要找出远离图像左边和上边界的黑色方块有多少像素?

如果可能的话,我不想使用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)

1 个答案:

答案 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访问和测试图像中的每个像素。