Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的OpenCV-无抗锯齿调整大小_Python_Opencv - Fatal编程技术网

Python中的OpenCV-无抗锯齿调整大小

Python中的OpenCV-无抗锯齿调整大小,python,opencv,Python,Opencv,我有一个512x160像素的黑白图像,我想用OpenCV放大(到4096x1280)。负(白色)像素保持为负非常重要cv2.resize在默认情况下显示为反锯齿图像,从而创建假正像素。有没有办法禁用抗锯齿功能 编辑:从这里我可以看到插值方法: 间最近邻插值 间线性双线性插值 三次双三次插值 INTER_AREA-使用像素面积关系重新采样。这可能是一个错误 图像抽取的首选方法,因为它提供无云纹 结果。但是,当图像被缩放时,它类似于INTER_最近法 INTER_LANCZOS4-8x8邻域上的L

我有一个512x160像素的黑白图像,我想用OpenCV放大(到4096x1280)。负(白色)像素保持为负非常重要
cv2.resize
在默认情况下显示为反锯齿图像,从而创建假正像素。有没有办法禁用抗锯齿功能

编辑:从这里我可以看到插值方法:

  • 间最近邻插值
  • 间线性双线性插值
  • 三次双三次插值
  • INTER_AREA-使用像素面积关系重新采样。这可能是一个错误 图像抽取的首选方法,因为它提供无云纹 结果。但是,当图像被缩放时,它类似于INTER_最近法
  • INTER_LANCZOS4-8x8邻域上的Lanczos插值
  • INTER_MAX-用于插值代码的掩码
  • WARP_FILL_OUTLIERS-标志,填充所有目标图像像素。 如果其中一些与源图像中的异常值相对应,则为 设置为零
  • 扭曲逆映射-标志,逆变换

插值决定了如何进行抗锯齿处理,其排序是相反的,因为在这种情况下,图像没有足够的分辨率来显示其原始分辨率。 在python中,解决方案是使用
cv2.INTER\u NEAREST


在C++中,可以选择插值类型,Python可能是相同的。您可能需要使用CV\u INTER\umode@Micka谢谢,“最近邻插值”的确切含义是什么?调整大小后,不清楚新像素将获得哪种颜色。通常在该区域的源图像像素之间进行插值。INTER_NEAREST选择源图像中最近像素的颜色。对于任何感兴趣的人,INTER_NEAREST仍然给我一些“假阳性”像素。我通过将图像调整为np数组来解决这个问题:
np.repeat(np.repeat(image,8,axis=0),8,axis=1)
我找到了一个比
cv2.resize
更好的方法来在Python中使用OpenCV时放大图像。根据法律,这也是一种选择。
scale_ratio = 0.5
img_resized = cv2.resize(img, None, fx=scale_ratio, fy=scale_ratio, interpolation=cv2.INTER_NEAREST)