c_sobel.c
来自「基于VPM642开发板的sobel边缘检测程序」· C语言 代码 · 共 24 行
C
24 行
void C_sobel
(const unsigned char indata[], int width, int height, unsigned char outdata[])
{
int i,j,a,b,c;
//int scale=4;
for (i=1;i<height-1;i++) {
for (j=1;j<width-1;j++) {
a = abs((indata[(i-1)*width+(j+1)]+2*indata[i*width+(j+1)]+indata[(i+1)*width+(j+1)])-
(indata[(i-1)*width+(j-1)]+2*indata[i*width+(j-1)]+indata[(i+1)*width+(j-1)]));
b = abs((indata[(i+1)*width+(j-1)]+2*indata[(i+1)*width+j]+indata[(i+1)*width+(j+1)])-
(indata[(i-1)*width+(j-1)]+2*indata[(i-1)*width+j]+indata[(i-1)*width+(j+1)]));
// c = (int) sqrt(a*a+b*b);
c = a+b;
//c /= scale;
if (c>255) c=255;
outdata[i*width+j] = c;
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?