这个错误原因是因为nbarray这个对象内置一个类别属性,该属性记录了数组元素的类别,属性接口为
-
ndarray.astype(dtype,order='K',casting='unsafe', subok=True, copy=True
)
(详见文档 ndarray.astype )
该属性在python-opencv mat数据类型必须定义为整型,所以,在调用imshow前只需配置一下该属性即可,代码是:ndarrayObject.astype(int),由于opencv3在python上取消了c++风格的cv接口,只保留了专门为python设计的matlab风格的cv2接口,说明官方也是提倡规范opencv在python上的使用,而cv2接口采用numpy作为重要的数据结构及处理库以取代c++中的mat等结构,所以要玩好opencv-python,熟悉numpy的基本数据操作是非常必要的。