如何自动裁剪徽标图像的背景理想情况下为任何颜色

问题描述

我正在尝试自动裁剪徽标周围的背景。现在,我正在使用getbBox进行裁剪,但是它并不总是有效。

以下是我用来测试自动裁剪器的图像:

enter image description here

运行后

# crop out background
queries = [logo.crop(ImageOps.invert(logo).getbBox()) for logo in queries]
queries = [logo.crop(logo.getbBox()) for logo in queries]

这是结果:

enter image description here

正如您所看到的,除了少数情况(例如Adobe,Google和LinkedIn中的徽标)外,它几乎可以正常工作。有人可以给我一些见解,为什么它总是不能达到预期的效果以及如何改善它?

编辑: 我尝试按照评论中的建议使用阈值。它有助于生成Google和linkedin图片,但对Adobe徽标的效果相同。

logos_gray = [logo.convert('L') for logo in logos]
threshold = 250
logos_gray = [logo.point(lambda p: p > threshold and 255) for logo in logos_gray]
logos_gray_inv = [ImageOps.invert(logo) for logo in logos_gray]
for i in range(len(logos_gray_inv)):
    logos[i] = logos[i].crop(logos_gray_inv[i].getbBox())

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)