使用OpenCV对两张图像执行类AND操作合成黑背景蝴蝶图像
OpenCV 两张图像按逻辑与效果合成方案
要实现保留黑背景与目标元素(蝴蝶)的类逻辑与合成效果,可以直接调用OpenCV内置的按位与方法实现,具体操作如下:
- 前置要求:两张输入图像尺寸需完全一致,若尺寸不同可先通过
cv2.resize()做对齐处理 - 操作步骤:
- 导入依赖并读取图像
import cv2 import numpy as np # 替换为你的本地图像路径 img_original = cv2.imread("原始RGB图像路径") img_transformed = cv2.imread("变换后图像路径") # 自动对齐尺寸 if img_original.shape != img_transformed.shape: img_transformed = cv2.resize(img_transformed, (img_original.shape[1], img_original.shape[0]))
- 执行按位与合成
如果两张图的背景均为纯黑,直接调用cv2.bitwise_and即可:
result = cv2.bitwise_and(img_original, img_transformed)
如果变换后图像的背景不是纯黑,可先生成掩码再做合成:
# 变换后图像转灰度 gray_transformed = cv2.cvtColor(img_transformed, cv2.COLOR_BGR2GRAY) # 二值化生成掩码,阈值10可根据你的图像亮度自行调整 _, mask = cv2.threshold(gray_transformed, 10, 255, cv2.THRESH_BINARY) # 基于掩码从原始图中提取目标区域,背景保留黑色 result = cv2.bitwise_and(img_original, img_original, mask=mask)
- 结果输出
# 保存合成结果 cv2.imwrite("合成结果.png", result) # 查看合成效果 cv2.imshow("合成结果", result) cv2.waitKey(0) cv2.destroyAllWindows()
内容的提问来源于stack exchange,提问作者Laura Galera
相关产品推荐
相关产品推荐

