From bbaf8e2ff961267d1a6c944d5ff33ce8b054995a Mon Sep 17 00:00:00 2001 From: pmx4rsuzf <3134300599@qq.com> Date: Fri, 6 Dec 2024 17:55:44 +0800 Subject: [PATCH] ADD file via upload --- complex_2.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 complex_2.c diff --git a/complex_2.c b/complex_2.c new file mode 100644 index 0000000..e3162ca --- /dev/null +++ b/complex_2.c @@ -0,0 +1,53 @@ +#include +#include +void applySeparableGaussianBlur(float src[5][5], float dst[5][5], int h, int w, float kx[3], float ky[3]) +{ + float buf[3][5] = { 0 }; + for (int i = 1; i < h - 1; i++) + { + for (int j = 1; i < h - 1; i++) + { + for (int j = 0; j < w; j++) + { + if (j == 0 || j == 1 || j == 2) + { + buf[j][i] = src[i - 1][j] * kx[0] + src[i][j] * kx[1] + src[i + 1][j] * kx[2]; + } + } + } + if (i >= 1) + { + for (int j = 1; j < w - 1; j++) + { + float sum = 0; + for (int k = 0; k < 3; k++) + { + sum += buf[k][j] * ky[k]; + } + 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 }; + float kx[3]= { 1 / 16.0, 2 / 16.0, 1 / 16.0 }; + float ky[3]= { 1 / 16.0, 2 / 16.0, 1 / 16.0 }; + clock_t start = clock(); + applySeparableGaussianBlur (src,dst, 5, 5, kx,ky); + 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("运行时间:%f 秒\n", time_taken); + return 0; +} \ No newline at end of file