我有这个示例图像,它有白色矩形框,其中有一个黑色正方形。 (2 个蓝色箭头仅用于说明目的,它们不是图像的一部分)
有没有办法找出黑色方 block 距离图像的左边界和上边界有多少像素?
如果可能的话,我宁愿不使用 OpenCV
,因为其余的处理都是在 PIL
中完成的,如果我必须使用 OpenCV,这可能有点矫枉过正
就做这一个操作。
仅供引用:图像为 JPEG 格式,框中始终只有 1 个黑色方 block (没有多个方 block )。
更新
根据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)
最佳答案
基于 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 访问和测试图像中的每个像素。
关于Python在JPEG图像上找到黑色方 block 的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20754419/