python图像处理过程中遇到的坑
使用PIL进行图像的处理:
- 使用PIL.open()方法打开一张图片,此时图片是一个图像对象,不是numpy数组.
- 此时这个图像的对象可以进行各种操作, 例如灰度,提高亮度,增强, 调整分辨率等等.
- 使用np.array功能,可以将一个图像对象转化为np的数组. 然后用于神经网络或者其他的各种操作.
- 在使用PIL的fromarray功能时候,很可能会遇到bug,提示”格式不支持”.这个时候很有可能是mode没有选择正确.
- 在使用fromarray 功能时候, 我们要保证数组中的值都是在0到255之间, np.asarray(np.clip(derained, 0, 255), dtype=”uint8”).
- 此时主要用到的就是函数clip可以将一个数组中的数值全部局限在后面两个值之间.
除了PIL, 我们还可以使用matplotlib
- 除了PIL, 我们也可以使用matplotlib来进行python的图像操作, 使用这个库进行图像操作时候,使用plt.imread()来加载图片,注意这个时候,整个图片是一个numpy的数组,无法进行图片的增强操作.
- 使用matplotlib的一个好处是可以使用pylab来进行图片的保存,同时可以直接从numpy数组绘制整个图片.