- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello and good day.
When converting from the old IPL to the IPP library (v8.1) I get strange results for the IPL function for central moment.
Example code:
int width = 103; // minimum size for the discrepancy int height =2; // create unsigned char image (w,h)=(103,2) IplImage* iplIm = iplCreateImageHeader(1, 0, IPL_DEPTH_8U, "GRAY", "GRAY", IPL_DATA_ORDER_PIXEL, IPL_ORIGIN_TL, IPL_ALIGN_QWORD, width, height, NULL, NULL, NULL, NULL); // set all pixels to 1. iplAllocateImage(iplIm, 1, 1); //create ipp state for moments IppHintAlgorithm hint = ippAlgHintAccurate;//ippAlgHintAccurate;//ippAlgHintFast;// ippAlgHintNone // allocate memory for state IppiMomentState_64f* pState; IppStatus sts = ippiMomentInitAlloc_64f( &pState, hint); // calculate moments IppiSize size = {width, height}; sts = ippiMoments64f_8u_C1R((Ipp8u*)iplIm->imageData, iplIm->widthStep, size, pState); // get central moment for IPL and IPP int mOrd = 3; int nOrd = 0; double res_ipp; sts = ippiGetCentralMoment_64f( pState, mOrd, nOrd, 0, &res_ipp); double res_ipl = iplCentralMoment(iplIm, mOrd, nOrd); assert(res_ipl == res_ipp);
Results:
Third moment should be zero for an image consisting only of ones.
IPP: -7.4505805969238281e-009, Good enough
IPL: -2.0000000074505806, ???
System details:
I7-2600, Win7 32bit, IPP8.1SP1.
Loaded IPP dlls:
ippccg9-8.1.dll
ippsg9-8.1.dll
ippcvg9-8.1.dll
ippig9-8.1.dll
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
at the first glance this is the problem in IPL which is no longer supported. Please use IPP instead. :)

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page