ippiResizeCenter equivalent

ippiResizeCenter equivalent

I am facing a similar situation to this poster;


I am trying to achieve zoom effect using the resize mechanism. It works, but the image is also shifted. There is no equivalent to the function ippiResizeCenter anymore as it is deprecated. How can I achieve zoom effect?

7 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Well, I had been putting off upgrade to 7.1 for a while. I upgraded to 7.1 and due to the new resize implementation, my executable, in debug mode went from 8 MB to 1 MB!

Awesome upgrade, IPP team! thank you!

Now, let me investigate how I can do zoom with the new resize functions.

Hmm, I am stumped! with previous resize methods, I could get zoom effects. With the new one, I am not able to find a way: I am using resize per this new method here:


Can anybody give me some pointers?

OK, more progress. I am able to get zoom with the new methods. The way to do it would be to increase the destination size of the image during these operations:

ippiResizeGetSize_8u, ippiResizeLanczosInit_8u, ippiResizeGetBufferSize_8u.

But when the actual processing takes place in this method: ippiResizeLanczos_8u_C1R, revert destination size to original size.

I still can't figure out how to reset the displacement due to zooming effect though!

Any help Intel guys on how to get this offset in the destination image?

OK, this is what I am doing:

Ipp32s zoomOpSpecSize = 0, zoomOpInitSize = 0, zoomOpBufSize = 0;
IppiPoint zoomedOffset = {0, 0};
Ipp8u * zoomOpBuf = NULL, * zoomOpInitBuf = NULL;
IppiResizeSpec_32f * zoomOpSpec = NULL;

IppiSize srcSize = {0, 0, width, height}

IppiSize dstSize = {0, 0, width * 2, height *2} // Just for experimentation

ippiResizeGetSize_8u(srcSize, dstSize, ippCubic, 0, &zoomOpSpecSize, &zoomOpInitSize);

zoomOpInitBuf = ippsMalloc_8u(zoomOpInitSize);
zoomOpSpec = (IppiResizeSpec_32f *)ippsMalloc_8u(zoomOpSpecSize);

ippiResizeCubicInit_8u(srcSize, dstSize, 0, 0, zoomOpSpec, zoomOpInitBuf);

ippiResizeGetBufferSize_8u(zoomOpSpec, dstSize, 4, &zoomOpBufSize);

zoomOpBuf = ippsMalloc_8u(zoomOpBufSize);

Now, when I do the actual processing, I set dstSize to be srcSize. This brings the zoomed effect, but predictably, "displaces" the destination image as well:

                                         srcSize, // Note here, it is not dstSize, but srcSize

Can the intel guys please give me some pointers?

I think there really is no way to accomplish this based on my reading.

Leave a Comment

Please sign in to add a comment. Not a member? Join today