cv2、scipy.misc和skimage之间的差异

d5vmydt9  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(147)

两者的主要区别是什么

  • cv2.imread / resize/ imwrite
  • scipy.misc.imread / imresize/ imsave
  • skimage.io.imread / skimage.transform.resize / skimage.io.imsave

以及如何决定使用哪一个?
我知道cv2skimage有不同的编码器,并且cv2默认使用'BGR'而不是'RGB'。但是有时候脚本可能会同时使用它们,例如main.py,它使用scipy.misc.imreadcv2.imresizecv2.imwrite。我想知道这样做的原因。

4ktjp1zp

4ktjp1zp1#

scipy.misc模块一直以来都是用来收集那些不适合其他SciPy子模块的函数的。它已经被弃用,不应该再使用。
在Python生态系统中,我推荐使用imageio来阅读图像(或者matplotlib.pyplot.imread,如果您已经在使用matplotlib)。
Scikit-image为所有这些I/O库提供了一个方便的 Package 器skimage.io(它应该会拾取你系统上已经安装的任何东西)。它还确保图像被转换为正确的数据类型和范围格式,以便与其他skimage函数一起使用(参见http://scikit-image.org/docs/dev/user_guide/data_types.html)。
cv2.imread等对OpenCV图像对象进行操作,正如您已经观察到的,这些图像通常存储在BGR内存布局中。但是对于加载PNG和JPG,上面列出的大多数库都 Package 了相同的底层C库,可能在压缩等方面的参数略有不同。
我建议您使用任何一个函数来最小化脚本/包的依赖性。

相关问题