首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何选择图像插值方法?(Emgu/OpenCV)

如何选择图像插值方法?(Emgu/OpenCV)
EN

Stack Overflow用户
提问于 2010-06-24 17:28:23
回答 4查看 41.6K关注 0票数 31

Emgu ( .net包装器用于OpenCV)提供的图像调整功能可以使用四种插值方法之一

  1. CV_INTER_NN (默认)
  2. CV_INTER_LINEAR
  3. CV_INTER_CUBIC
  4. CV_INTER_AREA

我大致理解线性插值,但只能猜出立方体或面积的作用。我怀疑NN代表最近的邻居,但我可能错了。

我调整图像大小的原因是为了减少像素的数量(它们在某个时候会被迭代),同时保持它们的代表性。我之所以提到这一点,是因为在我看来,插值是这个目的的核心--因此,获得正确的类型应该是相当重要的。

那么,我的问题是,每种插值方法的优缺点是什么?它们有什么不同,我应该使用哪一种?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-06-24 17:38:48

最近的邻居将尽可能快,但当调整大小时,您将丢失大量信息。

线性插值速度较慢,但除非缩小图像(实际上是这样),否则不会导致信息丢失。

三次插值(可能实际上是"Bicubic")使用了包含多个相邻像素的许多可能公式之一。这对于缩小图像来说要好得多,但对于在不丢失信息的情况下,您可以做多少收缩,您仍然是有限的。根据算法的不同,您可能可以将图像减少50%或75%。这种方法的主要缺点是速度慢得多。

不知道什么是“区域”-它可能实际上是“双比克”。在所有可能的情况下,这个设置将给您最好的结果(就信息丢失/外观而言),但代价是最长的处理时间。

更新:此链接提供了更多详细信息(包括列表中未包括的第五种类型):

transformations.html?highlight=resize#resize

票数 31
EN

Stack Overflow用户

发布于 2017-05-31 07:24:06

算法是:(描述来自OpenCV文档)

  • INTER_NEAREST -最近邻插值
  • INTER_LINEAR -双线性插值(默认情况下使用)
  • INTER_AREA -使用像素面积关系重采样。这可能是一种首选的图像抽取方法,因为它提供无莫尔的结果。但是当图像被放大时,它类似于INTER_NEAREST方法。
  • INTER_CUBIC - 4x4像素邻域上的双三次插值
  • INTER_LANCZOS4 - 8x8像素邻域上的Lanczos插值

如果您需要更多的速度,使用最近的邻居方法。

如果你想在下采样后保持图像的质量,你可以考虑使用基于INTER_AREA的插值,但它同样取决于图像的内容。

您可以找到速度比较这里的详细分析。

以下是从上述链接拍摄的400*400 px图像的速度比较。

票数 19
EN

Stack Overflow用户

发布于 2010-06-24 17:40:46

要使用的插值方法取决于您试图实现的目标:

CV_INTER_LINEARCV_INTER_CUBIC应用低通滤波器(平均)来实现视觉质量和边缘去除之间的权衡(低通滤波器倾向于去除边缘,以减少图像中的混叠)。在这两者之间,我推荐你CV_INTER_CUBIC.

CV_INTER_NN方法实际上是最近的,它是最基本的方法,你会得到更清晰的边缘(不使用低通滤波器)。然而,这种方法只是像“放大”图像,没有视觉增强。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3112364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档