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/ imwrite
和scipy.misc.imread / imresize/ imsave
之间的主要区别是什么以及如何决定使用哪一个?
我知道skimage.io.imread / skimage.transform.resize / skimage.io.imsave
和cv2
有不同的encoder,skimage
使用' BGR'不是' RGB'在默认情况下。但有时,脚本可能会将它们一起使用,例如main.py,它使用cv2
,scipy.misc.imread
和cv2.imresize
。我想知道这样做的原因。
答案 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库,可能具有稍微不同的压缩参数等。
我建议您使用哪个函数最小化脚本/包的依赖性足迹。