今天在使用Numpy中的矩阵做相减操作时,出现了一些本应为负值的位置自动转换为了正值,观察发现转换后的正值为原本的负值加上256得到,具体情况如下:正常情况矩阵相减样例如下错误代码如下:得到的结果值如下:以上出现的矩阵相减得到的结果值自动转换的问题是因为直接通过grayMat = np.matrix得到的dtype类型是unit8类型的,只需要在开始时设置为np.int32即可正常完成相减.即:. 默认来说这样的矩阵类型是uint8即无符号8bit整型,这样进行相减当然得不出正确结果。在查阅相关资料之后,发现可以通过设置其元素格式进行运算,从而规避了无负数结果的发生。
暂无评论