大家好、团队、
我正在使用现有的框架复制插件移植 DSP 上的清晰边缘检测。我修改了其边缘检测的处理函数。我使用两个阵列、两个存储临时处理的数据、然后再修改原始输入缓冲区、我使用 malloc 将内存分配给这些阵列。
它是从堆动态分配内存的正确方法吗?
当我运行插件时、未获得预期结果、请参阅随附的图像以供参考。
请参阅下面的框架复制插件处理功能中添加的插件代码片段。
unsigned char * inputPtr_1、* inputPtr_2、* inputPtr_3;
unsigned char *ptr1、*ptr2、*temp;
ptr1 = pAlgHandle->optptr1;
ptr2 = pAlgHandle->optptr2;
inputPtr_1 =(unsigned char*) inPtr[0];
inputPtr_2 =(unsigned char*)(inPtr[0]+宽度);
inputPtr_3=(无符号字符*)(inPtr[0]+(2*width));
memcpy (ptr1、inputPtr_1、width);
int pixel_value、pixel_value_1、pixel_value_2;
对于(rowIdx = 1;rowIdx <高度;++rowIdx)
{
for (colIdx = 1;colIdx <宽度;+colIdx)
{
PIXEL_value_1=(int)(-1)*((int)*(inputPTR_1+colIdx-1))+(-2)*(((int)*(inputPtr_1_colIdx))+(-1)*(((int)*(inputPtr_1_colx+1)+ 1)+
(0)*((int)*(inputPtr_2+colIdx -1))+(0)*((int)*(inputPtr_2+colIdx))+(0)*((int)*(inputPtr_2+colIdx+1))+
(1)*((int)*(inputPtr_3+colIdx-1))+(2)*((int)*(inputPtr_3+colIdx))+(1)*(((int)*(inputPtr_3+colIdx+1))));
PIXEL_value_2=(int)(-1)*((int)*(inputPtr_1_colIdx-1))+(0)*((int)*(inputPtr_1_colIdx))+(1)*((int)*(inputPtr_1_colIdx+1)+)+
(-2)*((int)*(inputPtr_2+colIdx -1))+(0)*((int)*(inputPtr_2+colIdx))+(2)*((int)*(inputPtr_2+colIdx+1))+
(-1)*(((int)*(inputPtr_3+colIdx-1))+(0)*((int)*(inputPtr_3+colIdx))+(1)*((int)*(inputPtr_3+colIdx+1))));
PIXEL 值_1 = ABS (PIXEL 值_1);
PIXEL 值_2 = ABS (PIXEL 值_2);
PIXEL 值=(PIXEL 值_1 + PIXEL 值_2)>> 1;
//pixel_value= sqrt (pixel_value* pixel_value);
if (pixel_value > 255)
PIXEL 值= 255;
*(ptr2 + colIdx)=(unsigned char)(pixel_value);
}
memcpy (inputPtr_1、ptr1、width);
temp = ptr1;
ptr1 = ptr2;
ptr2= temp;
inputPtr_1 =(unsigned char*)(inputPtr_1 +宽度);
inputPtr_2 =(unsigned char*)(inputPtr_2 +宽度);
inputPtr_3=(unsigned char*)(inputPtr_3 +宽度);
}
memcpy (inputPtr_1、ptr1、width);
是否有人能建议任何指针来找出问题… ?
此致、
普里塔姆

