无需插值即可缩小/调整图像大小

时间:2016-09-16 02:20:37

标签: python opencv

我有一张大小为1044 * 1408的图像F,它只有3个整数值0,2和3.

我想将它缩小到360 * 480。现在我正在使用Z= cv2.resize(F,(480,380))。但Z是内插的,它有许多唯一值,不仅仅是0,2和3.我不能将内插值四舍五入到最接近的整数,因为我会得到一些1。

从tif文件读取

F并进行操作,现在它是一个ndarray。所以我不能使用PIL:F = F.resize((new_width, new_height))因为F不是来自F = Image.open(*)

2 个答案:

答案 0 :(得分:3)

您可以使用INTER_NEAREST

Z= cv2.resize(F,(480,380),fx=0, fy=0, interpolation = cv2.INTER_NEAREST)

答案 1 :(得分:1)

或者,您也可以使用skimage.transform.resize。参数order = 0强制执行最近邻居插值。

   Z = skimage.transform.resize(F,
                               (480,380),
                               mode='edge',
                               anti_aliasing=False,
                               anti_aliasing_sigma=None,
                               preserve_range=True,
                               order=0)