np.zeros初始化图像

简介: np.zeros初始化图像

今天做插值算法时,自生成了一个图像用于表示缩放后的图像

使用np.zeros(width,height)来进行了初始化,但是进行完缩放后,显示的图像很明显不对劲,但如果将缩放后的结果保存为图像,再加载又是显示正常的。

后来我猜测会不会跟初始化时的类型有关,试了一下,果不其然,增加了dtype=np.uint8后,进行完插值算法的结果显示正常。

dstImg=np.zeros((500,500,3),np.uint8)

图1为不加np.uint8时的结果,图二为加了之后的结果。

 


找到问题之后,进行原因分析就简单了:

首先,我猜测其初始化为浮点数后,后面虽然将其赋值为整数,但其存储类型可能还是浮点数,因此直接通过cv2显示,好多点应该显示不出来。

经过断点调试发现,默认初始化后的类型为float64,虽然结果都是整数,但因其类型不对从而导致图像不能正常显示。


经验:

       这里可以学习到一个经验,再处理图像时,我们可以直接将其类型限定为np.uint8,以避免不必要的麻烦。

相关文章
【YOLOv8训练结果评估】YOLOv8如何使用训练好的模型对验证集进行评估及评估参数详解
【YOLOv8训练结果评估】YOLOv8如何使用训练好的模型对验证集进行评估及评估参数详解
IDEA常用插件之注解插件
IDEA常用插件之注解插件
615 0
TypeError: randint() received an invalid combination of arguments - got (int, int, int), but expecte
TypeError: randint() received an invalid combination of arguments - got (int, int, int), but expecte
798 0
根据用户采集的WiFi信息采用决策树预测用户所在房间
根据用户采集的WiFi信息采用决策树预测用户所在房间
248 0
根据用户采集的WiFi信息采用决策树预测用户所在房间
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等