【Tool】Python常用图像库总结
2018-12-05 本文已影响0人
ItchyHiker
Python 里面有很多常用图像库,入opencv, PIL/Pillow, scikit-image, imageio, scipy.ndimage。这里总结下每个库的特点,以便在合适的时候选择合适的工具。
opencv
如果你是从c++的Opencv转过来的,那么在python 里面也可以使用opencv库,有一点限制就是一些不常见的功能,并没有集成到python里面,但是还是功能很全。如果只能掌握一个图像库,我的首选就是opencv, 当我需要遍历文件夹的图片的时候,发现C++ 的opencv 有类似 python glob函数,我就爱上它了。而且opencv c++库最近发布了4.0和深度学习结合更加紧密了,有兴趣可以关注下。
PIL
PIL的模块比较多,我一般用的多的就是Image模块,需要注意的是,Image模块读进来的图像是一个对象,不像其他函数一样是numpy array,需要使用numpy处理的话还需要进行一下转换。
PIL.png
scikit-image
scikit-image 是一个专注于图像处理的库,初步看功能也是比较强大。
skimage.png
imageio
imageio是一个专注于图像读取的库,支持的格式很多,接口数很少,很容易掌握。
正如官网所显示的,一共只需要掌握8个函数。
使用 imageio 库读取进来就是numpy格式的。一般我们只需要掌握imread, imwrite两个函数,而且scipy.misc中的imread imsave也不建议使用了,而是推荐使用imageio中的对应函数。
这里贴一下imageio的API:https://imageio.readthedocs.io/en/latest/userapi.html
使用的时候直接去查看就可以了。
scipy.ndimage
ndimage是 scipy中的一个子模块, 有常见的卷积,滤波,傅立叶变换,插值,形态学变换的函数等。