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

使用OpenCV无法将bool型np.array转为uint8并正常保存图像

问题原因与解决办法
  • 问题本质:将图像转为bool类型时,原图像中所有非0像素都会被转为True(对应数值1),0像素转为False(对应数值0)。当转回uint8类型后,1这个值在0-255的像素取值范围内几乎等同于纯黑,所以保存后的图像显示为全黑。
  • 修复方案:转回uint8类型后,将代表True的1值放大为255(这是uint8类型中白色的对应值),才能正确还原原图像的黑白对比。

修正后的代码:

import cv2
R = cv2.imread('R.png')
R = R.astype(dtype=bool)
# 将布尔值映射为uint8的黑白像素值
R = R.astype(dtype='uint8') * 255
cv2.imwrite('rr.png', R)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 10:55:22