Hello,
when we run ippiRGBToLab_32f_C3R fuction for rgb float image, it returns an error code 0xc000000005: read access violation at 0x0, flags=0x0 (first chance). The 8-bit version of the function works properly.
Best regards,
Markus Honkanen
Pixact Ltd
链接已复制
Hello Sergey,
Thank you for the quick response! I made a test code below for you, but it didn't return an error. We will study this issue on Monday. Probably the stride of the test image was somehow wrongly calculated... I'll let you know what we find out!
Best regards,
Markus
--
int main(intr argc, char *argv[])
{
int step = 14784;
int height = 1029;
int width = 1228;
Ipp32f *src = (Ipp32f*)ippiMalloc_32f_C3(width,height,&step);
Ipp32f *dst = (Ipp32f*)ippiMalloc_32f_C3(width,height,&step);
IppiSize roiSize = { width,height };
IppStatus st = ippiRGBToLab_32f_C3R( src , step , dst , step , roiSize );
if ( st == ippStsNoErr){
printf("\n ************* passed ****************\n");
}else{
printf("\n ************* failed ****************\t");
}
}
Sorry for dilay. Each image should has you own step.
int main()
{
int step0 = 14784;
int step1 = 14784;
int height = 1029;
int width = 1228;
Ipp32f *src = (Ipp32f*)ippiMalloc_32f_C3(width, height, &step0);
Ipp32f *dst = (Ipp32f*)ippiMalloc_32f_C3(width, height, &step1);
IppiSize roiSize = { width, height };
IppStatus st = ippiRGBToLab_32f_C3R(src, step0, dst, step1, roiSize);
if (st == ippStsNoErr){
printf("\n ************* passed ****************\n");
}
else{
printf("\n ************* failed ****************\t");
}
}
Hello Sergey,
Finally today we returned to this issue. We found out that the ippiRGBToLab_32f_C3R crashes when the input image includes values larger than 1. The function works properly when the pixel values of the Ipp32f input image remain in the range [0 1]. We suggest that instead of crashing, the function could return an error, if the input image included values out of the appropriate range [0 1]. Thank you.
Best regards,
Markus
Pixact Ltd.