第 1 轮：基础实现（基础版）
目标： 实现核心的边界检测与透视矫正功能。

Prompt:
我正在开发一个“AI 阅卷助手”，目前需要完成第一步：答题卡定位与边界检测。
请使用 Python 和 OpenCV 编写一个基础程序，要求如下：

读取一张包含答题卡的图像。

进行预处理（转灰度、高斯滤波、Canny 边缘检测）。

寻找图像中面积最大的四边形轮廓，作为答题卡的边界。

对检测到的答题卡进行透视变换（Perspective Transform），将其矫正为标准的矩形俯视图并显示结果。

代码注释要简洁，不要过多。

第 2 轮：优化改进（进阶版）
目标： 增加鲁棒性处理，应对阴影、噪声或复杂背景。

Prompt:
在刚才的基础代码基础上，我们需要提升程序的鲁棒性，请进行以下优化：

预处理增强： 引入自适应阈值分割（Adaptive Thresholding）或形态学操作（如膨胀与腐蚀），以更好地应对光照不均或背景杂乱的情况。

轮廓筛选优化： 增加逻辑判断，确保找到的轮廓不仅是面积最大的，且必须是凸四边形，避免误检。

排序逻辑： 优化透视变换中的顶点排序算法（确保左上、右上、右下、左下坐标顺序准确），防止矫正后的图像出现镜像或翻转。

保持代码简洁，删除多余的调试注释。

第 3 轮：完善功能（挑战版）
目标： 封装成可复用的类，并增加结果输出功能。

Prompt:
现在我们需要将这个功能模块化，达到“挑战版”的要求：

类封装： 将整个检测与矫正逻辑封装成一个名为 AnswerSheetDetector 的类，提供 detect_and_warp(image) 等接口。

参数化配置： 允许在初始化类时调整 Canny 阈值或输出的分辨率。

结果保存： 增加一个功能，将矫正后的图像自动保存到指定路径，并在原图上绘制出检测到的绿色边界框作为反馈。

异常处理： 如果图中未检测到有效的答题卡，程序应能安全返回错误提示而不是直接崩溃。