用C语言写高斯滤波代码
时间: 2023-05-13 14:06:29 浏览: 79
以下是一个简单的 C 语言高斯滤波代码示例:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define PI 3.14159265358979323846
int main()
{
int i, j, k, l, m, n;
int width = 5, height = 5; // 图像大小
double sigma = 1.0; // 高斯核参数
double sum, val, kernel[width][height];
// 生成高斯核
for (i = 0; i < width; i++) {
for (j = 0; j < height; j++) {
kernel[i][j] = exp(-(i*i + j*j) / (2*sigma*sigma)) / (2*PI*sigma*sigma);
}
}
// 读入图像
double **image = (double **)malloc(height * sizeof(double *));
for (i = 0; i < height; i++) {
image[i] = (double *)malloc(width * sizeof(double));
for (j = 0; j < width; j++) {
scanf("%lf", &image[i][j]);
}
}
// 高斯滤波
double **result = (double **)malloc(height * sizeof(double *));
for (i = 0; i < height; i++) {
result[i] = (double *)malloc(width * sizeof(double));
for (j = 0; j < width; j++) {
sum = 0.0;
val = 0.0;
for (k = -width/2; k <= width/2; k++) {
for (l = -height/2; l <= height/2; l++) {
if (i+k >= 0 && i+k < height && j+l >= 0 && j+l < width) {
sum += kernel[k+width/2][l+height/2];
val += kernel[k+width/2][l+height/2] * image[i+k][j+l];
}
}
}
result[i][j] = val / sum;
}
}
// 输出结果
for (i = 0; i < height; i++) {
for (j = 0; j < width; j++) {
printf("%lf ", result[i][j]);
}
printf("\n");
}
// 释放内存
for (i = 0; i < height; i++) {
free(image[i]);
free(result[i]);
}
free(image);
free(result);
return 0;
}
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)