From 6a8f85419e7ee504e0972cdc6f8c3cdf1c61d085 Mon Sep 17 00:00:00 2001 From: p8btn9vm4 <349074866@qq.com> Date: Sun, 1 Dec 2024 17:24:57 +0800 Subject: [PATCH] ADD file via upload --- blur_1.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 blur_1.c diff --git a/blur_1.c b/blur_1.c new file mode 100644 index 0000000..eaaaaa2 --- /dev/null +++ b/blur_1.c @@ -0,0 +1,53 @@ +#include +#include + +#define KERNEL_SIZE 3 + +float kernel[KERNEL_SIZE][KERNEL_SIZE] = { + {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} +}; + +void applyGaussianBlur(float src[][5], float dst[][5], int h, int w, float kernel[KERNEL_SIZE][KERNEL_SIZE]) { + for (int i = 1; i < h - 1; i++) { + for (int j = 1; j < w - 1; j++) { + float sum = 0.0f; + for (int ki = 0; ki < KERNEL_SIZE; ki++) { + for (int kj = 0; kj < KERNEL_SIZE; kj++) { + sum += src[i + ki - 1][j + kj - 1] * kernel[ki][kj]; + } + } + dst[i][j] = sum; + } + } +} + +int main() { + float src[5][5] = { + {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 dst[5][5] = { 0 }; + + clock_t start = clock(); + applyGaussianBlur(src, dst, 5, 5, kernel); + clock_t end = clock(); + + printf("模糊后的图像矩阵:\n"); + for (int i = 0; i < 5; i++) { + for (int j = 0; j < 5; j++) { + printf("%.2f ", dst[i][j]); + } + printf("\n"); + } + + double time_taken = (double)(end - start) / CLOCKS_PER_SEC; + printf("运行时间: %e 秒\n", time_taken); + + return 0; +} \ No newline at end of file