我有一张大小为1044 * 1408的图像F
,它只有3个整数值0,2和3.
我想将它缩小到360 * 480。现在我正在使用Z= cv2.resize(F,(480,380))
。但Z
是内插的,它有许多唯一值,不仅仅是0,2和3.我不能将内插值四舍五入到最接近的整数,因为我会得到一些1。
F
并进行操作,现在它是一个ndarray。所以我不能使用PIL:F = F.resize((new_width, new_height))
因为F
不是来自F = Image.open(*)
。
答案 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)