使用openCV,如何更改分辨率而不是图像大小?

时间:2014-06-25 15:17:04

标签: ios opencv

这可能是一个基本问题,但我是openCV的新手,我发现文档很差。我想我想使用resize函数来获得与原始图像大小相同的新图像,但分辨率较低。

我发现的所有文档都表现得好像分辨率和大小相同,我完全不知道这些参数是什么意思。不同的来源似乎显示了与我在标题中看到的不同版本的调整大小:

CV_EXPORTS_W void resize( InputArray src, OutputArray dst,
                      Size dsize, double fx=0, double fy=0,
                      int interpolation=INTER_LINEAR );

如果我保持dsize与原版相同的大小,x和y代表什么,我怎样才能获得72 dpi的分辨率?

1 个答案:

答案 0 :(得分:0)

让我直接解释一下:当你将图像加载到一个记忆中时,你可以很好地近似得到具有给定行数和列数的数字矩阵。根据dpi的定义,即可以放置在一英寸线上的单个点的数量,你在内存中缺少“英寸”。如果矩阵存储在内存中,您将如何定义dpi?仅根据记忆来谈论它是没有意义的。因此,在opencv中(也许在任何其他处理库中),您的分辨率和大小概念相同。

也许您希望实现“人工”降低dpi的功能? “看起来像”图像以较低的dpi打印?在这种情况下,为什么不尝试迭代地向下和向上调整相同的图像以实现此结果。

cv :: resize()函数确实通过给定目标大小(param dsize )或缩放因子( fx fy )。