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

如何将小尺寸Numpy图像数组居中覆盖到黑色背景数组上?

实现小图像居中覆盖到黑色背景数组的方法

要将小尺寸图像数组居中覆盖到1920×1080的黑色背景数组上,核心是计算小图像在背景中的起始坐标,通过数组切片赋值完成覆盖,具体步骤如下:

步骤说明

  1. 获取尺寸信息:分别提取背景图和小图像的高度、宽度
  2. 计算居中起始位置:通过背景与图像的尺寸差的一半,得到垂直和水平方向的起始坐标
  3. 切片赋值:将小图像数组赋值到背景图对应的切片区域

完整代码示例

import numpy as np

# 初始化黑色背景数组
blackImg = np.zeros((1920, 1080, 3), np.uint8)
# 替换为你的实际图像数组(示例为随机生成的720×1280彩色图)
img = np.random.randint(0, 255, (720, 1280, 3), np.uint8)

# 获取背景和图像的高、宽
h_bg, w_bg = blackImg.shape[:2]
h_img, w_img = img.shape[:2]

# 计算居中的起始坐标(整数除法保证索引为整数)
y_start = (h_bg - h_img) // 2
x_start = (w_bg - w_img) // 2

# 将小图像覆盖到背景的对应区域
blackImg[y_start:y_start+h_img, x_start:x_start+w_img] = img

补充说明

  • 若你的图像是单通道灰度图,只需确保背景数组也为单通道(将np.zeros((1920, 1080, 3), np.uint8)改为np.zeros((1920, 1080), np.uint8)),代码逻辑完全通用
  • 使用整数除法//是为了避免出现小数索引,确保切片操作合法

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 17:15:54