抠图然后放在另外一张图的python 代码,调用opencv库
时间: 2024-10-08 18:10:15 浏览: 22
在Python中,我们可以使用OpenCV库来进行图像处理,包括抠图和图片合成。以下是一个简单的例子,展示了如何使用OpenCV进行抠图并将抠出的图像放置到另一张图片上:
```python
import cv2
# 读取原始图片
img1 = cv2.imread('source_image.jpg')
# 使用预设的背景模板,如果是透明背景,则无需这部分
bg_img = cv2.imread('background_image.jpg', cv2.IMREAD_TRANSPARENT)
# 使用 contours 和 mask 进行抠图
gray = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
_, thresh = cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY_INV)
contours, _ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 选择最大的轮廓作为目标(假设是人物)
max_contour = max(contours, key=cv2.contourArea)
x, y, w, h = cv2.boundingRect(max_contour)
roi = img1[y:y+h, x:x+w]
# 将抠出的部分应用到背景上
dst = bg_img.copy()
dst[y:y+h, x:x+w] = roi
# 写入结果图片
cv2.imwrite('output_image.jpg', dst)
阅读全文