如何剪出透明背景?

1 python opencv image-processing python-imaging-library

我有这个图像:

在此输入图像描述

并且,想像这样剪掉透明背景:

在此输入图像描述

使用 PIL 将会是:

from PIL import Image
im = Image.open("image")
im.getbbox()
im2 = im.crop(im.getbbox())
im2.save("result")
Run Code Online (Sandbox Code Playgroud)

但是,如何使用 OpenCV 变体来做到这一点?

Han*_*rse 5

与 Pillow 中的想法几乎相同:

import cv2

im = cv2.imread('h62rP.png', cv2.IMREAD_UNCHANGED)
x, y, w, h = cv2.boundingRect(im[..., 3])
im2 = im[y:y+h, x:x+w, :]
cv2.imwrite('result.png', im2)
Run Code Online (Sandbox Code Playgroud)

生成的图像看起来与提供的图像完全相同。

----------------------------------------
System information
----------------------------------------
Platform:      Windows-10-10.0.19042-SP0
Python:        3.9.6
PyCharm:       2021.2
OpenCV:        4.5.3
----------------------------------------
Run Code Online (Sandbox Code Playgroud)