我想用集成性能基元(IPP)API取代我的opencv resize()函数。
我正在使用IPP 7.1版本。
但做了下面的替换后,我没有得到调整宽度和高度。使用ipp API取代OpenCV功能的问题
这里是OpenCV的功能:
Mat src,dest;
resize(src, dest, Size(cvRound(8.0 * src.cols/ width), cvRound(8.0 * src.rows/height)), INTER_LINEAR);
//dest rows and cols are getting updated
这里是IPP功能:
IppiSize srcsize,dstsize;
IppiPoint zoomedOffset = {0, 0};
Ipp32s zoomOpSpecSize = 0, zoomOpInitSize = 0, zoomOpBufSize = 0;
Ipp8u * zoomOpBuf = NULL;
IppiResizeSpec_32f * zoomOpSpec = NULL;
srcsize.height = src.rows;
srcsize.width = src.cols;
dstsize.height = dest.rows;
dstsize.width = dest.cols;
ippiResizeGetSize_8u(srcsize,dstsize,ippLinear, 0, &zoomOpSpecSize, &zoomOpInitSize);
zoomOpSpec = (IppiResizeSpec_32f *)ippsMalloc_8u(zoomOpSpecSize);
ippiResizeLinearInit_8u(srcsize, dstsize,zoomOpSpec);
ippiResizeGetBufferSize_8u(zoomOpSpec, dstsize, 1, &zoomOpBufSize);
zoomOpBuf = ippsMalloc_8u(zoomOpBufSize);
ippiResizeLinear_8u_C1R(src.data,
src.cols,
dest.data,
dest.cols,
zoomedOffset,
dstsize,
ippBorderRepl,
0,
zoomOpSpec,
zoomOpBuf
);
ippsFree(zoomOpSpec);
ippsFree(zoomOpBuf);
感谢blackibiza你的答案。你能否告诉我提到IPP实现的openCV resize()函数是否正确?如果是,那么为什么我没有得到所需的输出? – Ashwin 2014-11-04 10:16:42
嗨Blackibiza,我没有找到在opencv resize()函数调用里面的ipp调用! – Ashwin 2014-11-05 08:51:57
请参考此其他Stackoverflow线程:http://stackoverflow.com/questions/13465914/using-opencv-mat-images-with-intel-ipp – madduci 2014-11-06 09:30:46