使用NVIDIA NPP调整目标尺寸的正确方法是什么?

时间:2016-04-08 11:21:04

标签: gpu nvidia image-resizing npp

我正在尝试使用NVIDIA NPP来试验一些图像大小调整程序。我想调整到一个确切的维度。我一直在使用NVIDIA NPP查看图像大小调整,但是它的所有调整大小功能都采用X和Y尺寸的比例因子,我看不到任何直接目标尺寸的API。

例如,这是一个API:

NppStatus nppiResizeSqrPixel_8u_C1R(const Npp8u * pSrc, NppiSize oSrcSize, int nSrcStep, NppiRect oSrcROI, Npp8u * pDst, int nDstStep, NppiRect oDstROI, double nXFactor, double nYFactor, double nXShift, double nYShift, int eInterpolation);

我意识到一种方法可能是找到适当的比例因子作为目标维度,但我们并不完全知道API如何根据比例因子决定目标ROI(因为它是浮点数学)。我们可以在jpegNPP样本中反转计算以找到比例因子,但API本身不做任何保证,所以我不确定它是多么安全。任何想法有什么可能性?

作为一个侧面问题,API还有两个参数,nXShift和nYShift,但只是说“X方向的源像素移位”。我不清楚这里正在讨论什么样的转变。你有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果我想将整个SRC图片映射到DST图片中较小的矩形,如下图所示,我会使用xFactor = yFactor = 0.5xShift = 0.5*DST.width和{ {1}}。

Mapping src to half size destination image

换句话说,yShift = 0(x,y)处的像素映射到SRC中的像素(x',y')

DST

在这种情况下,源和目标ROI都可以是各个图像的完整支持。