Python中的OpenCV - 没有消除锯齿的大小调整

时间:2016-04-11 16:32:24

标签: python opencv

我有一个512x160像素的黑白图像,我想用OpenCV升级(到4096x1280)。负(白色)像素保持负值非常重要。 cv2.resize默认情况下会对图像进行反锯齿处理,从而产生误差像素。有没有办法禁用抗锯齿?

编辑:我在这里看到的是插值方法:

  • INTER_NEAREST - 最近邻插值
  • INTER_LINEAR - 双线性插值
  • INTER_CUBIC - 双三次插值
  • INTER_AREA - 使用像素区域关系重新采样。它可能是一个 图像抽取的首选方法,因为它不含莫尔条纹 结果。但是当图像被缩放时,它类似于INTER_NEAREST方法。
  • INTER_LANCZOS4 - 8x8邻域的Lanczos插值。
  • INTER_MAX - 插值代码掩码。
  • WARP_FILL_OUTLIERS - flag,填充所有目标图像像素。 如果它们中的一些对应于源图像中的异常值,则它们是 设为零。
  • WARP_INVERSE_MAP - 标志,逆转换。

1 个答案:

答案 0 :(得分:0)

插值决定如何进行抗锯齿,反之亦然,因为在这种情况下,图像没有足够的分辨率来显示其原始分辨率。 在python中,解决方案是使用cv2.INTER_NEAREST

scale_ratio = 0.5
img_resized = cv2.resize(img, None, fx=scale_ratio, fy=scale_ratio, interpolation=cv2.INTER_NEAREST)