cv2,scipy.misc和skimage之间的区别

时间:2018-03-19 20:24:59

标签: python scipy scikit-image cv2

class Team(models.Model): name = models.CharField(max_length=256 , unique=True) details = models.TextField() def __str__(self): return self.name class GameScore(models.Model): def __str__(self): return '{} {} - {} {}'.format(self.first_team.name,self.first_team_score, self.second_team_score,self.second_team.name) first_team = models.ForeignKey\ (Team,related_name='first_team',null=True,on_delete=models.PROTECT) second_team = models.ForeignKey\ (Team,related_name='second_team',null=True,on_delete=models.PROTECT) first_team_score = models.IntegerField(default=0) second_team_score = models.IntegerField(default=0) GameDate = models.DateTimeField(auto_now=True) cv2.imread / resize/ imwritescipy.misc.imread / imresize/ imsave之间的主要区别是什么以及如何决定使用哪一个?

我知道skimage.io.imread / skimage.transform.resize / skimage.io.imsavecv2有不同的encoderskimage使用' BGR'不是' RGB'在默认情况下。但有时,脚本可能会将它们一起使用,例如main.py,它使用cv2scipy.misc.imreadcv2.imresize。我想知道这样做的原因。

1 个答案:

答案 0 :(得分:5)

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库,可能具有稍微不同的压缩参数等。

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