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

如何使用OpenCV调整图像大小并保留透明背景

解决OpenCV缩放透明图片时背景变黑的问题

问题根源是你当前的代码没有读取图片的Alpha透明通道:OpenCV默认的cv2.imread()只会加载BGR三个颜色通道,丢失了透明信息,缩放后原本透明的区域就会被填充为黑色。

修复步骤如下:

  • 读取图片时添加cv2.IMREAD_UNCHANGED参数,保留包括Alpha通道在内的所有通道
  • 直接指定目标尺寸(100, 100)即可,无需手动计算比例(OpenCV会自动处理)
  • 确保缩放后的图片保存为支持透明的格式(比如PNG)

修改后的完整代码:

import cv2

# 读取带Alpha通道的图片
img = cv2.imread('image.png', cv2.IMREAD_UNCHANGED)

# 直接缩放至100×100,保留所有通道
resized = cv2.resize(img, (100, 100))

# 保存处理后的图片(必须用PNG格式才能保留透明)
cv2.imwrite('resized_image.png', resized)

额外说明:

  • 如果你的图片确实包含Alpha通道,img.shape会显示为(256, 256, 4)(4代表BGR+Alpha)
  • 若需要自定义插值方式(比如更平滑的缩放),可以在resize中添加interpolation参数,例如cv2.resize(img, (100,100), interpolation=cv2.INTER_AREA)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 00:39:58