想要给图片的右边加一块白边,代码如下:
white_side_image= np.zeros((len(img_column), complement_width )) + 255
new_img_column = np.concatenate( (original_image, white_side_image), axis=1 )
但是得到了这样的结果
图片的右边是成功地加上了白边,但是图像变得非常模糊了。
我在图片的右边加上它自己,发现图片没有变模糊。我又把它自己copy了一下,制作成白边(改变颜色大小),加到
他的右边,发现图片也没有变模糊。
最终我发现
white_side_image= np.zeros((len(img_column), complement_width )) + 255
np.zeros默认的元素类型是float64,而我读入的图片的元素类型是uint8,元素类型不一样,引发了numpy的bug。
需要加上参数
dtype='uint8'
代码:
white_side_image= np.zeros((len(img_column), complement_width ), dtype='uint8') + 255
new_img_column = np.concatenate( (original_image, white_side_image), axis=1 )
效果:
经验:当使用numpy的函数对numpy.array进行操作时,多个array参数的元素类型不同很可能会引起bug。