gpt4 book ai didi

python - 以编程方式检测图像是否有边框(返回 bool 值)

转载 作者:太空宇宙 更新时间:2023-11-03 14:30:56 25 4
gpt4 key购买 nike

首先,我已经阅读了这篇文章。 How to detect an image border programmatically?不过,他似乎在问一个略有不同的问题,即寻找 X/Y 坐标。

我只是想找出给定照片周围是否存在实心 边框。我探索过使用 ImageMagick,但这是最好的选择吗?我从来没有做过任何与图像相关的编程,所以我希望有一个简单的 api 可以解决这个问题。我对如何使用这些库也很陌生,因此不胜感激。我更喜欢 Python 或 Java 的解决方案,但任何东西都可以。

谢谢!

最佳答案

我回答了一个相关问题here , 删除图像周围的任何边框,它使用 PIL .您可以轻松调整代码,使其返回 TrueFalse 来判断是否有边框,如下所示:

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。

例如:

错误:

enter image description here

错误:

enter image description here

正确:

enter image description here

关于python - 以编程方式检测图像是否有边框(返回 bool 值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10985550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com