如何在Python中将uint8类型图像转换为uint16类型
解决方法
你当前的代码只是执行了类型转换操作,但没有将转换后的结果重新赋值给变量,所以image1和image2的类型不会改变。要真正完成类型转换,需要把转换后的结果赋值回原变量:
import cv2 import numpy as np image1 = cv2.imread("82.png", 0) image2 = cv2.imread("83.png", 0) # 执行类型转换并赋值回变量,完成类型变更 image1 = np.uint16(image1) image2 = np.uint16(image2)
额外补充:如果你的PNG是8位灰度图,转换为uint16后像素值仍会保持0-255的范围。如果需要将像素值映射到uint16的全范围(0-65535),可以用以下方式:
# 把8位灰度值映射到uint16的完整取值范围 image1 = np.uint16(image1) * 257 image2 = np.uint16(image2) * 257
(注:乘以257是因为255×257=65535,刚好对应uint16的最大值)
内容的提问来源于stack exchange,提问作者user19593840
相关产品推荐
相关产品推荐

