- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hi,
I'm porting from Ipp 7.0.6 to Ipp 8.1.0 a function that use ippiMorphOpenBorder_32f_C1R. Code doesn't compile with this error
error C2660: 'ippiMorphOpenBorder_32f_C1R' : function does not take 7 arguments.
I've find a difference from Ipp 8.1.0 documentation and function prototype in ippcv.h
Documentation states :
IppStatus ippiMorphOpenBorder_<mod>(const Ipp<datatype>* pSrc, int srcStep, Ipp<datatype>* pDst, int dstStep, IppiSize roiSize, IppiBorderType borderType, IppiMorphAdvState* pState);
Header function definition :
IPPAPI( IppStatus, ippiMorphOpenBorder_32f_C1R,(
const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
IppiSize roiSize, IppiBorderType borderType, Ipp32f borderValue, const IppiMorphAdvState* pMorthSpec, Ipp8u* pBuffer ))
Assuming that the header definition is right it's not clear for me which is the size of pBuffer and which function I must call to obtain this size.
Thank's in advance
コピーされたリンク
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
pls look here -- you will see the example how to make the call of this function - http://software.intel.com/en-us/forums/topic/293581
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
regard to documentation - It looks like the description is not correct - we will check it. Thanks for the issue.
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
The example at http://software.intel.com/en-us/forums/topic/293581 seam broken ....
// I got ippStsMemAllocErr error over here.
// I am not sure about this error (error on the pMask or pState?).
stat = ippiMorphAdvInitAlloc_32f_C1R(&pState, imgSz, pMask, maskSz, anchorPt);
and probably (year 2009) refer to Ipp version before 8.1!!
The right function prototype now is :
IPPAPI( IppStatus, ippiMorphOpenBorder_32f_C1R,(
const Ipp32f* pSrc, int srcStep, Ipp32f* pDst, int dstStep,
IppiSize roiSize, IppiBorderType borderType, Ipp32f borderValue, const IppiMorphAdvState* pMorthSpec, Ipp8u* pBuffer ))
and my problem is how to calculate pBuffer size. Now I'm using ippiMorphAdvGetSize_32f_C1R but I'm not sure.
Regards
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Is there an update on this topic? I also just ran into the upgrade error listed here, and was not able to find any useful documentation on this API change. Note that I have never run into an IPP API change before .. deprecation yes, but never a change. Is this a bug or was it intentional? Note that there also seems to be problems with the #pragmas in 8.1 which identify how to link with the different libraries (static vs. dynamic, and sequential vs. threaded).
Thanks,
Peter
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hi pvonkaenel.
I am so sorry about inconvinience for you. But we are trying to do IPP library as best as possible.
In one recent version of IPP libray the some new advanced mophology functions were added. For example
IPPAPI( IppStatus, ippiMorphOpenBorder_16u_C1R,(
const Ipp16u* pSrc, int srcStep, Ipp16u* pDst, int dstStep,
IppiSize roiSize, IppiBorderType borderType, Ipp16u borderValue, const IppiMorphAdvState* pMorthSpec, Ipp8u* pBuffer ))
It supports InMemory,Replicate and Const border types and allows processing images in parallel mode.
To add the same support of borders the API of already presented functions was changed too.
To call ippiMorphOpenBorder_32f_C1R please use pipeline below
{
IppStatus status;
int specSize = 0, bufferSize = 0;
IppiMorphAdvState* pState;
Ipp8u* pBuffer;
status = ippiMorphAdvGetSize_32f_C1R( roiSize, maskSize, &specSize, &bufferSize );
pState = (IppiMorphAdvState*)ippsMalloc_8u(specSize);
pBuffer = (Ipp8u*)ippsMalloc_8u(bufferSize);
status = ippiMorphAdvInit_32f_C1R( roiSize, pMask, maskSize, pState, pBuffer );
status = ippiMorphOpenBorder_32f_C1R (pSrc, srcStep, pDst, dstStep, roiSize, border, borderValue, pState, pBuffer);
return status;
}
In nearest release, the documentation will be aligned with headers.
Thank you for using IPP.
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hi Andrey,
Thanks for the response - it does help a bit in figuring out how to change my existing call. Is it fair to say that the parameters for the new 16u_C1R call should match the functionality for the changed parameters in the 8u_C1R call I have been using?
Thanks again,
Peter
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hi pvonkaenel.
For ippiMorphOpenBorder_8u_C1R and ippiMorphOpenBorder_16u_C1R uses the same pipeline as for 32f.
The difference is pMorthSpec instead of pState and borderType allowed to be one of ippBorderConst / ippBorderRepl / ippBorderInMem[Left
| Right | Top | Bottom]
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Thanks. I've been able to change my call.
Peter