You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Matplotlib在大图上叠加带透明色的小图像片段并保留背景?

用Matplotlib在完整图像B上叠加Clip并保留上下文的方法

以下两种方案可以解决你的问题,基于Python 3.12和matplotlib实现:

方案1:带透明度的Clip叠加(保留完整图像B+区分Clip位置)

先绘制完整的图像B作为底图,再在对应位置叠加Clip,通过**透明度(alpha)和不同颜色映射(cmap)**区分两者,同时保留B的上下文。

代码示例:

import matplotlib.pyplot as plt
import numpy as np

# 替换成你的实际图像读取逻辑,这里用随机数据模拟
# 图像B尺寸示例:500x500
img_b = np.random.rand(500, 500)
# Clip尺寸示例:100x100,对应图像B中(x_start=200, y_start=150)的区域
clip = np.random.rand(100, 100)
x_start, y_start = 200, 150
clip_h, clip_w = clip.shape

# 1. 绘制完整图像B作为底图
plt.imshow(img_b, cmap='gray')

# 2. 计算Clip在图像B上的显示范围(extents参数格式:左, 右, 下, 上)
extents = [x_start, x_start + clip_w, y_start + clip_h, y_start]
# 叠加Clip,设置半透明和差异化色板
plt.imshow(clip, cmap='viridis', alpha=0.5, extent=extents)

# 可选:添加红色边框标记Clip位置,更直观
rect = plt.Rectangle((x_start, y_start), clip_w, clip_h, fill=False, edgecolor='red', linewidth=2)
plt.gca().add_patch(rect)

plt.axis('off')
plt.show()

核心说明:

  • 先画底图再叠加Clip,避免覆盖或丢失上下文
  • alpha=0.5让Clip半透明,既能看清Clip细节,也能透过它看到下方的图像B
  • extents参数需严格对应Clip在图像B上的实际坐标,确保位置准确

方案2:高亮Clip与图像B对应区域的差异

如果重点关注两者的不同,可以计算像素差异,把差异区域高亮显示在完整图像B上。

代码示例:

import matplotlib.pyplot as plt
import numpy as np

# 替换成你的实际图像读取逻辑,这里用随机数据模拟
img_b = np.random.rand(500, 500)
clip = np.random.rand(100, 100)
x_start, y_start = 200, 150
clip_h, clip_w = clip.shape

# 1. 获取图像B中与Clip对应的区域
b_roi = img_b[y_start:y_start+clip_h, x_start:x_start+clip_w]

# 2. 计算像素差异,设定阈值筛选明显差异区域
diff = np.abs(b_roi - clip)
diff_mask = diff > 0.2  # 阈值根据你的图像实际情况调整

# 3. 绘制完整图像B作为底图
plt.imshow(img_b, cmap='gray')

# 4. 创建红色高亮层,仅显示差异区域
highlight = np.zeros((clip_h, clip_w, 3))
highlight[diff_mask] = [1, 0, 0]  # 红色标记差异

# 叠加高亮层到对应位置
plt.imshow(highlight, alpha=0.6, extent=[x_start, x_start+clip_w, y_start+clip_h, y_start])

# 可选:添加蓝色边框标记Clip区域
rect = plt.Rectangle((x_start, y_start), clip_w, clip_h, fill=False, edgecolor='blue', linewidth=2)
plt.gca().add_patch(rect)

plt.axis('off')
plt.show()

核心说明:

  • 通过像素差异计算,精准定位两者的不同区域
  • 高亮层采用半透明红色,既突出差异,又不遮挡图像B的其他内容

内容的提问来源于stack exchange,提问作者Kas Knicely

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 12:42:43