用于[0-255]灰度图像的Matlab double与uint8



我在Matlab中有一个灰度图像。

我注意到,如果我将图像保持在"double"或"uint8"数组中,Matlab中的一些图像处理算法会受到影响。我意识到我在使用"double",即使"uint8"已经足够了。调用Matlab运动检测算法时,这似乎很重要。

这是由于"双"数字的表示吗?我知道"浮点计算有舍入误差",因为必须用32/64位来表示一个数字。

uint8的计算具有比double大得多的舍入误差。

您所看到的是因为MATLAB期望双图像在[0,1]的范围内。如果你的图像有一个更大的范围,它们可能会被一些算法剪辑掉。

除此之外,期望加倍可以得到更好(更精确(的答案。uint8计算可能更快,尽管情况并非总是如此。

最新更新