{"id":29470539,"url":"https://github.com/sakurapuare/fresnelinterference","last_synced_at":"2025-07-14T12:05:02.671Z","repository":{"id":302588792,"uuid":"1012335072","full_name":"SakuraPuare/FresnelInterference","owner":"SakuraPuare","description":"AI 辅助菲涅尔双棱镜干涉实验","archived":false,"fork":false,"pushed_at":"2025-07-10T21:35:13.000Z","size":4109,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-12T05:58:13.546Z","etag":null,"topics":["fft","fresenel","linux","opencv","opencv4","qt","qt6","windows"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SakuraPuare.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-02T07:15:38.000Z","updated_at":"2025-07-10T21:35:16.000Z","dependencies_parsed_at":"2025-07-03T07:43:24.324Z","dependency_job_id":null,"html_url":"https://github.com/SakuraPuare/FresnelInterference","commit_stats":null,"previous_names":["sakurapuare/fresnelinterference"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/SakuraPuare/FresnelInterference","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SakuraPuare%2FFresnelInterference","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SakuraPuare%2FFresnelInterference/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SakuraPuare%2FFresnelInterference/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SakuraPuare%2FFresnelInterference/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SakuraPuare","download_url":"https://codeload.github.com/SakuraPuare/FresnelInterference/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SakuraPuare%2FFresnelInterference/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265289022,"owners_count":23741282,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fft","fresenel","linux","opencv","opencv4","qt","qt6","windows"],"created_at":"2025-07-14T12:05:00.425Z","updated_at":"2025-07-14T12:05:02.661Z","avatar_url":"https://github.com/SakuraPuare.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AI 辅助菲涅尔双棱镜干涉实验\n\n[![竞赛](https://img.shields.io/badge/竞赛-2025第十一届湖北省大学生物理实验竞赛-blue.svg)](https://shields.io/)\n[![语言](https://img.shields.io/badge/语言-C%2B%2B-green.svg)](https://shields.io/)\n[![框架](https://img.shields.io/badge/框架-Qt-orange.svg)](https://shields.io/)\n[![库](https://img.shields.io/badge/库-OpenCV-blueviolet.svg)](https://shields.io/)\n[![构建](https://img.shields.io/badge/构建-CMake-red.svg)](https://shields.io/)\n[![许可](https://img.shields.io/badge/许可-MIT-brightgreen.svg)](LICENSE)\n\n**一个基于 C++/Qt 和 OpenCV 的智能物理实验辅助系统，旨在通过计算机视觉技术简化菲涅尔双棱镜干涉实验的操作，并提高测量精度。**\n\n---\n\n## 目录\n\n- [项目背景](#项目背景)\n- [核心问题](#核心问题)\n- [解决方案](#解决方案)\n- [主要功能](#主要功能)\n- [系统截图](#系统截图)\n- [技术架构](#技术架构)\n- [编译与运行](#编译与运行)\n- [实验结果对比](#实验结果对比)\n- [特色与创新](#特色与创新)\n- [团队成员](#团队成员)\n- [许可](#许可)\n\n## 项目背景\n\n菲涅尔双棱镜干涉是分波面干涉的经典范例，它深刻地验证了光的波动性，并推动了现代干涉测量技术的发展。从LIGO引力波探测器的精密调节到双棱镜摄谱仪的环境监测，其核心原理至今仍在前沿科学中扮演重要角色。\n\n然而，作为大学物理实验的重要组成部分，菲涅尔双棱镜干涉实验因其操作的复杂性未能在各高校广泛普及。\n\n## 核心问题\n\n传统的菲涅尔双棱镜干涉实验面临三大挑战：\n\n1.  **光路调节困难**：光学元件（狭缝、双棱镜）需严格共轴等高，微小偏差（\u003e0.5mm）即会导致干涉条纹质量下降甚至消失，调节过程耗时且繁琐。\n2.  **测量精度受限**：\n    *   **虚光源间距 (d)**：采用共轭成像法测量，易受透镜像散和焦平面判断不准的影响。\n    *   **干涉条纹间距 (Δx)**：依赖测微目镜读数，存在空程误差和主观判读偏差。\n3.  **环境干扰敏感**：机械振动、气流扰动等环境因素会引起条纹漂移，影响测量稳定性。\n4.  **操作风险**：长时间的调节和读数过程可能对实验者的眼睛造成激光损伤。\n\n## 解决方案\n\n为解决上述难题，本项目开发了一套基于 **C++/Qt** 和 **OpenCV** 的AI辅助菲涅尔双棱镜干涉实验软件系统。该系统利用工业相机实时捕捉光路图像，通过集成的计算机视觉算法，实现对实验全流程的智能化辅助。\n\n系统通过图像预处理、特征提取、轮廓分析和几何计算等一系列经典计算机视觉技术，实时分析激光光斑位置和干涉条纹特征，从而实现：\n*   **光路调节的实时引导**\n*   **干涉条纹间距的自动测量**\n*   **虚光源间距的精确计算**\n*   **实验数据和误差的可视化分析**\n\n![系统流程图](tests/干涉条纹.png)\n*AI辅助双棱镜干涉实验流程示意图*\n\n## 主要功能\n\n- **智能光路校准**：通过OpenCV实时检测光斑的几何中心，并显示其运动轨迹，引导用户快速完成激光器、扩束镜、狭缝和双棱镜的共轴调节。\n- **自动条纹间距测量 (Δx)**：系统自动识别干涉区域，对图像进行灰度化、滤波和二值化处理，再通过峰值检测或边缘检测算法精确定位每一级条纹的中心，最终计算出平均条纹间距。\n- **自动虚光源间距测量 (d)**：在共轭成像法中，系统能自动捕捉并计算两次成像（大像和小像）的精确间距，消除人工读数误差，计算出虚光源间距d。\n- **数据处理与可视化**：自动计算波长并进行不确定度分析。将AI辅助测量与人工测量的数据进行多维度对比，通过图表（如箱线图、折线图、小提琴图）直观展示，便于快速评估与分析。\n\n## 系统截图\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e光路调节辅助\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e条纹间距自动分析\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"tests/光斑_远.png\" width=\"400\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"tests/干涉条纹.png\" width=\"400\"/\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e虚光源间距测量（大像）\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e虚光源间距测量（小像）\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"tests/大像.png\" width=\"400\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"tests/小像.png\" width=\"400\"/\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## 技术架构\n\n- **核心语言**: `C++17`\n- **图形用户界面 (GUI)**: `Qt 5`\n- **计算机视觉**: `OpenCV 4`\n- **构建系统**: `CMake`\n\n## 编译与运行\n\n请确保您已安装 C++ 编译器 (GCC/MSVC), Qt5, OpenCV 和 CMake。\n\n```sh\n# 1. 克隆仓库\ngit clone https://your-repository-url/FresnelInterference.git\ncd FresnelInterference\n\n# 2. 创建并进入build目录\nmkdir build \u0026\u0026 cd build\n\n# 3. 使用CMake配置项目\n#    请根据您的系统环境指定Qt和OpenCV的路径\n#    例如: cmake .. -DCMAKE_PREFIX_PATH=\"/path/to/qt;/path/to/opencv\"\ncmake ..\n\n# 4. 编译\nmake -j$(nproc)\n\n# 5. 运行程序\n./bin/main\n```\n\n## 实验结果对比\n\n实验数据表明，本AI辅助方案在测量精度上显著优于传统人工方法。\n\n| 对比项         | 人工测量 | **AI辅助测量** | 提升效果         |\n| :------------- | :------- | :------------- | :--------------- |\n| 波长测量不确定度 | 8.2 nm   | **1.8 nm**     | **减小了 78%**   |\n| 相对误差       | 1.28%    | **0.28%**      | **降低了 78%**   |\n| 稳定性         | 波动较大 | **高度集中**   | **稳定性显著提升** |\n\n![误差分布对比](tests/大像.png)\n*AI辅助测量（左）与人工测量（右）的相对误差箱线图对比*\n\n## 特色与创新\n\n1.  **高效的光路调节辅助**：将传统上凭经验、费时费力的光路调节过程，转变为一个由视觉算法实时反馈、数据驱动的精确校准过程。\n2.  **高精度的自动测量**：用计算机视觉算法替代了人工读数，彻底消除了主观判断误差和仪器空程误差，极大地提升了干涉条纹和虚光源间距的测量精度和速度。\n3.  **集成化的数据分析**：软件内建了完整的数据处理和可视化模块，实现了从数据采集到结果分析的无缝衔接，减少了人为计算错误，提升了科研效率。\n\n## 许可\n\n本项目采用 [MIT License](LICENSE) 开源。\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsakurapuare%2Ffresnelinterference","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsakurapuare%2Ffresnelinterference","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsakurapuare%2Ffresnelinterference/lists"}