From b62d534b0713e38891017f595ac53d18ef8cabea Mon Sep 17 00:00:00 2001 From: phw2xrtvn <1402919626@qq.com> Date: Mon, 2 Dec 2024 11:37:14 +0800 Subject: [PATCH] ADD file via upload --- GaussianBlur_Step1.c | 51 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 GaussianBlur_Step1.c diff --git a/GaussianBlur_Step1.c b/GaussianBlur_Step1.c new file mode 100644 index 0000000..5086f36 --- /dev/null +++ b/GaussianBlur_Step1.c @@ -0,0 +1,51 @@ + +#include +#include + +#define H 5 +#define W 5 + +void applyGaussianBlur(float src[H][W], float dst[H][W], int h, int w, float kernel[3][3]) { + for (int i = 1; i < h - 1; i++) { + for (int j = 1; j < w - 1; j++) { + float sum = 0.0; + for (int ki = 0; ki < 3; ki++) { + for (int kj = 0; kj < 3; kj++) { + sum += src[i - 1 + ki][j - 1 + kj] * kernel[ki][kj]; + } + } + dst[i][j] = sum; + } + } +} + +int main() { + float src[H][W] = { + {1, 2, 3, 4, 5}, + {6, 7, 8, 9, 10}, + {11, 12, 13, 14, 15}, + {16, 17, 18, 19, 20}, + {21, 22, 23, 24, 25} + }; + float kernel[3][3] = { + {1 / 16.0, 2 / 16.0, 1 / 16.0}, + {2 / 16.0, 4 / 16.0, 2 / 16.0}, + {1 / 16.0, 2 / 16.0, 1 / 16.0} + }; + float dst[H][W] = {0}; + + clock_t start = clock(); + applyGaussianBlur(src, dst, H, W, kernel); + clock_t end = clock(); + + printf("Output matrix:\n"); + for (int i = 0; i < H; i++) { + for (int j = 0; j < W; j++) { + printf("%.2f ", dst[i][j]); + } + printf("\n"); + } + + printf("Execution time: %lf seconds\n", (double)(end - start) / CLOCKS_PER_SEC); + return 0; +}