我回答了一个相关问题here https://stackoverflow.com/questions/10615901/trim-whitespace-using-pil/10616717#10616717,它删除图像周围的任何边框,它使用PIL http://www.pythonware.com/products/pil/。您可以轻松地调整代码,使其返回True
or False
是否有边框,如下所示:
from PIL import Image, ImageChops
def is_there_a_border(im):
bg = Image.new(im.mode, im.size, im.getpixel((0,0)))
diff = ImageChops.difference(im, bg)
diff = ImageChops.add(diff, diff, 2.0, -100)
bbox = diff.getbbox()
return bbox != (0,0,im.size[0],im.size[1])
然而,这会返回True
即使图像只有一侧有边框。但听起来您想知道图像周围是否有边框。为此,将最后一行更改为:
return all((bbox[0], bbox[1], (bbox[0] + bbox[2]) <= im.size[0],
(bbox[1] + bbox[3]) <= im.size[1]))
仅当每一侧都有边界时,此命令才会返回 true。
例如:
False:
False:
True: