如何在 IPP 中进行非标准化二维互相关
How to do un-normalized 2D Cross Correlation in IPP
我正在做一些 C++ 优化工作,需要没有任何平均偏移或规范化缩放操作的普通版互相关。我知道在图像数据的正常情况下,使用上述方法可以消除亮度的影响,因此只能识别结构相似性,但在我们的应用程序中实际上需要亮度。我正在使用 IPP 7.1,有人知道是否有办法做到这一点吗?我要做的下一个最好的事情是手动编写循环并利用 SIMD 自动矢量化和一些 OpenMP 并行化。
是的,当然,也有可用的 CrossCorr 函数 没有归一化 - 看看 ippi.h:
IPPAPI( IppStatus, ippiCrossCorrValid_32f_C1R, ( const Ipp32f* pSrc,
int srcStep, IppiSize srcRoiSize, const Ipp32f* pTpl, int tplStep,
IppiSize tplRoiSize, Ipp32f* pDst, int dstStep ))
IPPAPI( IppStatus, ippiCrossCorrValid_8u32f_C1R, ( const Ipp8u* pSrc,
int srcStep, IppiSize srcRoiSize, const Ipp8u* pTpl, int tplStep,
IppiSize tplRoiSize, Ipp32f* pDst, int dstStep ))
IPPAPI( IppStatus, ippiCrossCorrValid_8s32f_C1R, ( const Ipp8s* pSrc,
int srcStep, IppiSize srcRoiSize, const Ipp8s* pTpl, int tplStep,
IppiSize tplRoiSize, Ipp32f* pDst, int dstStep ))
IPPAPI( IppStatus, ippiCrossCorrValid_16u32f_C1R, ( const Ipp16u* pSrc,
int srcStep, IppiSize srcRoiSize, const Ipp16u* pTpl, int tplStep,
IppiSize tplRoiSize, Ipp32f* pDst, int dstStep ))
问候,伊戈尔
我正在做一些 C++ 优化工作,需要没有任何平均偏移或规范化缩放操作的普通版互相关。我知道在图像数据的正常情况下,使用上述方法可以消除亮度的影响,因此只能识别结构相似性,但在我们的应用程序中实际上需要亮度。我正在使用 IPP 7.1,有人知道是否有办法做到这一点吗?我要做的下一个最好的事情是手动编写循环并利用 SIMD 自动矢量化和一些 OpenMP 并行化。
是的,当然,也有可用的 CrossCorr 函数 没有归一化 - 看看 ippi.h:
IPPAPI( IppStatus, ippiCrossCorrValid_32f_C1R, ( const Ipp32f* pSrc,
int srcStep, IppiSize srcRoiSize, const Ipp32f* pTpl, int tplStep,
IppiSize tplRoiSize, Ipp32f* pDst, int dstStep ))
IPPAPI( IppStatus, ippiCrossCorrValid_8u32f_C1R, ( const Ipp8u* pSrc,
int srcStep, IppiSize srcRoiSize, const Ipp8u* pTpl, int tplStep,
IppiSize tplRoiSize, Ipp32f* pDst, int dstStep ))
IPPAPI( IppStatus, ippiCrossCorrValid_8s32f_C1R, ( const Ipp8s* pSrc,
int srcStep, IppiSize srcRoiSize, const Ipp8s* pTpl, int tplStep,
IppiSize tplRoiSize, Ipp32f* pDst, int dstStep ))
IPPAPI( IppStatus, ippiCrossCorrValid_16u32f_C1R, ( const Ipp16u* pSrc,
int srcStep, IppiSize srcRoiSize, const Ipp16u* pTpl, int tplStep,
IppiSize tplRoiSize, Ipp32f* pDst, int dstStep ))
问候,伊戈尔