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

如何解决在大图中随机叠加小图时旧小图残留的问题?

问题修复方案

你的代码核心问题是直接操作了markup_images中的原始大图对象,每次修改都会永久改变原始数据,导致后续调用时自然叠加之前的小图。

修复方法

每次调用函数时,先创建原始大图的副本,在副本上进行小图粘贴操作,这样原始大图始终保持初始状态,每次生成的都是仅包含单张小图的结果。

修改后的代码:

import numpy as np

def mask_generation(blob_index, image_index): 
    # 创建原始大图的深拷贝,避免修改原数据
    experimental_image = np.copy(markup_images[image_index])
    h, w = cropped_images[blob_index].shape[:2]
    # 修正索引方向:x对应宽度维度,y对应高度维度
    x = np.random.randint(experimental_image.shape[1] - w)
    y = np.random.randint(experimental_image.shape[0] - h)
    experimental_image[y:y+h, x:x+w] = cropped_images[blob_index]
    return experimental_image

额外说明

原代码中x和y的随机取值逻辑存在索引方向错误:

  • experimental_image.shape[0]是图像的高度(y轴范围),shape[1]是宽度(x轴范围)
  • 调整后x从宽度范围内取随机值,y从高度范围内取,能确保小图完全落在大图内,避免索引越界问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 22:20:31