写一个c语言的拉普拉斯算子实现代码
时间: 2023-04-09 19:04:40 浏览: 164
以下是一个C语言的拉普拉斯算子实现代码:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
void laplacian(int img[ROWS][COLS], int result[ROWS][COLS]) {
int kernel[3][3] = {{0, 1, 0},
{1, -4, 1},
{0, 1, 0}};
int i, j, k, l;
int sum;
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
sum = 0;
for (k = -1; k <= 1; k++) {
for (l = -1; l <= 1; l++) {
if (i + k >= 0 && i + k < ROWS && j + l >= 0 && j + l < COLS) {
sum += img[i + k][j + l] * kernel[k + 1][l + 1];
}
}
}
result[i][j] = sum;
}
}
}
int main() {
int img[ROWS][COLS] = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
int result[ROWS][COLS];
int i, j;
laplacian(img, result);
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
printf("%d ", result[i][j]);
}
printf("\n");
}
return 0;
}
```
这段代码实现了一个简单的拉普拉斯算子,可以对一个3x3的图像进行卷积操作,得到一个3x3的结果矩阵。