根据image_processing的例程修改代码,无法出现结果。问题内容具体如下:
我想在DSP代码中实现高斯滤波和均值滤波的功能。所以我基于image_processing例程的代码,来修改内容。例程中调用imglib的代码如下:
IMG_sobel_3x3_8(y, conv, p_info->width, p_info->height); /* Run Threshold Function */ IMG_thr_le2min_8(conv, p_info->out, p_info->width, p_info->height, IMAGE_THRESHOLD_VALUE);
最后结果正常,原图和结果如图所示:
我尝试修改代码,进行滤波操作:
const char mask[9] = {1,2,1,2,4,2,1,2,1} ; IMG_conv_3x3_i8_c8s(y,p_info->out, (p_info->width * p_info->height),p_info->width, mask,0);
加入之后,代码在↑处卡住,一直不出结果,无法输出结果图像。如下:
但是将代码改为sobel算子之后,可以出边缘检测的结果:
IMG_sobel_3x3_8(y, p_info->out,p_info->width, p_info->height);
别的代码我都没修改,可以帮我分析下可能是哪里的问题吗?感到疑惑
IMG_conv_3x3_i8_c8s的参数如下: void IMG_conv_3x3_i8_c8s(const unsigned char *restrictimgin_ptr,unsigned char *restrictimgout_ptr,shortwidth,shortpitch,const char *restrictmask_ptr,shortshift)imgin_ptrPointer to an input image of 8-bit pixelsimgout_ptrPointer to an output image of 8-bit pixelswidthNumber of output pixelspitchNumber of columns in the imagemask_ptrPointer to an 8-bit filter maskshiftUser specified right shift on sum
Shine:
能否跟踪到具体卡在了IMG_conv_3x3_i8_c8s函数里的哪行代码还是跑飞了?heap, stack等是否都正常?
user6041600:
回复 Shine:
调试的时候无法进入IMG_conv_3x3_i8_c8s函数内部,不知道具体是卡在了哪里