gpt4 book ai didi

python - 使用 PIL 查找图像中透明区域的位置

转载 作者:行者123 更新时间:2023-11-30 22:48:48 25 4
gpt4 key购买 nike

我想用其他图像填充图像中的透明 block 。例如:在此图像中,我们有 4 个透明 block ,需要填充。

需要找到 block 的位置并确定 x,y,x2,y2 坐标,以便我知道如何调整缩略图的大小。

Image with transparent

有人知道我如何使用 PIL 或 UNIX 工具来做到这一点。感谢您的帮助

最佳答案

您可以在命令行中使用 ImageMagick 或 Python、Perl、PHP 或 C/C++ 来完成此操作。

首先,提取 Alpha channel :

convert input.png -alpha extract alpha.png

enter image description here

但是我要做形态学,我想要黑底白字,所以反转它:

convert input.png -alpha extract -negate alpha.png

enter image description here

现在运行“连接组件”分析来查找白色 Blob :

convert input.png -alpha extract -negate -threshold 50% \
-define connected-components:verbose=true \
-define connected-components:area-threshold=100 \
-connected-components 8 -auto-level null:

输出

Objects (id: bounding-box centroid area mean-color):
0: 600x376+0+0 249.7,205.3 129723 srgb(0,0,0)
2: 203x186+70+20 170.8,112.6 27425 srgb(255,255,255)
1: 218x105+337+13 445.5,65.0 22890 srgb(255,255,255)
4: 218x105+337+251 445.5,303.0 22890 srgb(255,255,255)
3: 218x104+337+132 445.5,183.5 22672 srgb(255,255,255)

他们就在那里。忽略第一行,因为它是黑色的并且对应于整个图像。现在,查看第二行,您可以看到该 block 的大小为 203x186,偏移量为 +70+20。质心也在那里。让我用红色框住那个 Blob :

convert input.png -stroke red -fill none -draw "rectangle 70,20 272,205" z.png

enter image description here

关于python - 使用 PIL 查找图像中透明区域的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40050540/

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