imresize是正经图像变尺寸, 可以选变换方法,比如插值还是最近值 (nearest neighbor), 对如普通图像插值更平滑, 而二值label需要用neareast neighbor, 不然就会从0, 1变成 浮点。
图一: imresize让普通图像更大,默认方法bicubic
让我们看一下二值图, 比如给一个aa, size是 (20,20)
然后用 imresize(aa,[30,30]), 默认的还是bicubic,可以看到
二值mask已经被破坏了。
如果用imresize(aa, [30,30], 'nearest'),
结果就依然是二值, 依然是有效的二值掩码。
这一点在语义分割中一定要注意, 不少人错误的插值造成了真值掩码的错误。
而matlab中resize可以对图像或者说2D矩阵使用,但结果是Padding一样的效果,扩充右边和下边边框。用 resize(I, [1024,1024]), 可以看到是padding的效果
所以要注意matlab中imresize和resize的区别。