From fb52de1e8f190183a281fb682e407d8792d4bf80 Mon Sep 17 00:00:00 2001 From: biss Date: Tue, 28 Apr 2026 11:03:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Copilot --- lab-3/lab3-1.cpp | 26 ++++++++++++++----------- lab-3/lab3-2.cpp | 40 +++++++++++++++++++++------------------ lab-3/lab3-3.cpp | 26 ++++++++++++++----------- lab-3/数据/laplacian.raw | Bin 72080 -> 72080 bytes 4 files changed, 52 insertions(+), 40 deletions(-) diff --git a/lab-3/lab3-1.cpp b/lab-3/lab3-1.cpp index 6c70f58..521d328 100644 --- a/lab-3/lab3-1.cpp +++ b/lab-3/lab3-1.cpp @@ -20,19 +20,19 @@ int main() fread(grey, sizeof(unsigned char), H * W, f); fclose(f); - // 模板 + // prewitt模板 int tw = 3; int th = 3; int template1[9]={-1,0,1,-1,0,1,-1,0,1}; int template2[9]={-1,-1,-1,0,0,0,1,1,1}; - int i,j,k,l; - unsigned char *result_grey; - result_grey = new unsigned char[H * W]; + int i,j,k,l; // 中间变量 + unsigned char *result; + result = new unsigned char[H * W]; for (i = 0; i < H * W; i++) { - result_grey[i] = 255; + result[i] = 255; } for (i = th / 2; i < H - th / 2; i++) { @@ -53,23 +53,27 @@ int main() sum=abs(sum1)+abs(sum2); if(sum>100) { - result_grey[i * W + j] = 0; + result[i * W + j] = 0; } else { - result_grey[i * W + j] = 255; + result[i * W + j] = 255; } } } - FILE *fnew; - fopen_s(&fnew, "./数据/prewitt.raw", "wb"); - if (fnew) + + // 将结果写入文件 + FILE *fresult; + fopen_s(&fresult, "./数据/prewitt.raw", "wb"); + if (fresult) { - fwrite(result_grey, sizeof(unsigned char), H * W, fnew); + fwrite(result, sizeof(unsigned char), H * W, fresult); + fclose(fresult); } else { cout << "创建文件失败" << endl; return 0; } + return 0; } \ No newline at end of file diff --git a/lab-3/lab3-2.cpp b/lab-3/lab3-2.cpp index 8c6c615..b577f32 100644 --- a/lab-3/lab3-2.cpp +++ b/lab-3/lab3-2.cpp @@ -12,7 +12,7 @@ int main() unsigned char *grey; grey = new unsigned char[H * W]; FILE *f; - fopen_s(&f, "./数据/blood.raw", "rb"); + fopen_s(&f, ".//blood.raw", "rb"); if (f) { fread(grey, sizeof(unsigned char), H * W, f); @@ -20,30 +20,28 @@ int main() } else { - cout << "无法打开文件" << endl; + cout << "޷ļ" << endl; return 0; } - fread(grey, sizeof(unsigned char), H * W, f); - fclose(f); - // 模板 + // ˹ģ int tw = 3; int th = 3; int template1[9]={0,1,0,1,-4,1,0,1,0}; - int i,j,k,l; - unsigned char *result_grey; - result_grey = new unsigned char[H * W]; + int i,j,k,l; // м + unsigned char *result; + result = new unsigned char[H * W]; for (i = 0; i < H * W; i++) { - result_grey[i] = 255; + result[i] = 255; } for (i = th / 2; i < H - th / 2; i++) { for (j = tw / 2; j < W - tw / 2; j++) { - // 应用拉普拉斯模板 + // Ӧ˹ģ int sum = 0; for (k = -th / 2; k <= th / 2; k++) { @@ -52,25 +50,31 @@ int main() sum += grey[(i + k) * W + (j + l)] * template1[(k + th / 2) * tw + (l + tw / 2)]; } } - if (sum > 100) + sum = abs(sum); + if (sum < 1) { - result_grey[i * W + j] = 0; + result[i * W + j] = 0; } else { - result_grey[i * W + j] = 255; + result[i * W + j] = 255; } } } - FILE *fnew; - fopen_s(&fnew, "./数据/laplacian.raw", "wb"); - if (fnew) + + // дļ + FILE *fresult; + fopen_s(&fresult, ".//laplacian.raw", "wb"); + if (fresult) { - fwrite(result_grey, sizeof(unsigned char), H * W, fnew); + fwrite(result, sizeof(unsigned char), H * W, fresult); + fclose(fresult); } else { - cout << "创建文件失败" << endl; + cout << "ļʧ" << endl; return 0; } + + return 0; } \ No newline at end of file diff --git a/lab-3/lab3-3.cpp b/lab-3/lab3-3.cpp index 1ef82d5..2e71db7 100644 --- a/lab-3/lab3-3.cpp +++ b/lab-3/lab3-3.cpp @@ -24,18 +24,20 @@ int main() return 0; } + // sobel模板 int tw = 3; int th = 3; + // xy方向的sobel模板 int sobel_x[9]={-1,0,1,-2,0,2,-1,0,1}; int sobel_y[9]={-1,-2,-1,0,0,0,1,2,1}; - int i,j,k,l; - unsigned char *result_grey; - result_grey = new unsigned char[H * W]; + int i,j,k,l; // 中间变量 + unsigned char *result; + result = new unsigned char[H * W]; for (i = 0; i < H * W; i++) { - result_grey[i] = 255; + result[i] = 255; } for (i = th / 2; i < H - th / 2; i++) { @@ -56,20 +58,22 @@ int main() int sum = (int)sqrt(gx * gx + gy * gy); if (sum > 100) { - result_grey[i * W + j] = 0; + result[i * W + j] = 0; } else { - result_grey[i * W + j] = 255; + result[i * W + j] = 255; } } } - FILE *fnew; - fopen_s(&fnew, "./数据/sobel.raw", "wb"); - if (fnew) + + // 将结果写入文件 + FILE *fresult; + fopen_s(&fresult, "./数据/sobel.raw", "wb"); + if (fresult) { - fwrite(result_grey, sizeof(unsigned char), H * W, fnew); - fclose(fnew); + fwrite(result, sizeof(unsigned char), H * W, fresult); + fclose(fresult); } else { diff --git a/lab-3/数据/laplacian.raw b/lab-3/数据/laplacian.raw index b77936cd86c921ec544597d0d7ac62515d3c87e2..5a78f4732033f88c542ccc52272f9eee421d816e 100644 GIT binary patch literal 72080 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