opencv-python:创建图像容器 dtype=np.uint8

opencv-python 创建图像容器 dtype=np.uint8

今天踩了一个坑,在opencv-python中,若想为图像创建一个容器,需要指定dtype=np.uint8,否则虽然你的容器矩阵中是有值的,但是无法正常imshow

一、未指定dtype

源码
image_shrink矩阵输出
不正常显示

二、已指定dtype

源码
image_shrinkl矩阵输出
正常显示
WTF!WTF!WTF!

另外,需要注意数据溢出问题

因为数据类型为 np.uint8,也就是0~255,所以若计算过程中数据超出了这个范围,就会造成溢出。
最简单的,若想实现一个3*3均值滤波器,需要在邻域内进行累加求均值。这时,若先累加再除以9,那么会有溢出问题。取而代之地,每次累加都在最后 “//9” 即可。
当然,也可以考虑先把dtype设为float等,最后再强制转换为np.uint8

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页