【问题标题】:Difference between cv2, scipy.misc and skimagecv2、scipy.misc 和 skimage 的区别
【发布时间】:2018-08-28 12:49:07
【问题描述】:

cv2.imread / resize/ imwritescipy.misc.imread / imresize/ imsaveskimage.io.imread / skimage.transform.resize / skimage.io.imsave 之间的主要区别是什么以及如何决定使用哪一个?

我知道cv2skimage 有不同的encoder,而cv2 默认使用“BGR”而不是“RGB”。但有时,scripy 可能会同时使用它们,例如main.py,它使用scipy.misc.imreadcv2.imresizecv2.imwrite。我想知道这样做的原因。

【问题讨论】:

    标签: python scipy scikit-image cv2


    【解决方案1】:

    scipy.misc 模块在历史上是作为一个收集不适合其他 SciPy 子模块的函数的地方。它已被弃用,不应使用。

    在 Python 生态系统中,我建议使用imageio 来读取图像(或者matplotlib.pyplot.imread,如果您已经在使用matplotlib)。

    Scikit-image 为所有这些 I/O 库提供了一个方便的包装器,如 skimage.io(它应该会拾取您系统上已经安装的任何内容)。它还确保将图像转换为正确的数据类型和范围格式,以便与其他 skimage 函数一起使用(请参阅http://scikit-image.org/docs/dev/user_guide/data_types.html)。

    cv2.imread 等。对 OpenCV 图像对象进行操作,正如您已经观察到的,这些图像通常存储在 BGR 内存布局中。但是对于加载 PNG 和 JPG,上面列出的大多数库都包装了相同的底层 C 库,可能压缩等参数略有不同。

    我建议您使用最小化脚本/包的依赖足迹的任何函数。

    【讨论】:

      猜你喜欢
      • 2016-04-09
      • 2016-11-30
      • 2018-04-07
      • 2021-06-25
      • 2020-03-10
      • 2019-11-24
      • 2015-12-27
      • 1970-01-01
      • 2021-12-20
      相关资源
      最近更新 更多