基于C++实现三维牙齿模型的自动化预处理【100011019】
三维牙齿模型的自动化预处理 项目简介
上海交大2019年秋计算机图形学(CS337)课程设计 —— 三维牙齿模型的自动化预处理。提供未分割的整口牙的牙齿扫描数据(STL牙齿模型文件),要求开发出具有牙齿分割、计数、编号、牙齿轴向标定和牙齿缺失识别功能的系统,并将处理结果渲染到屏幕上,辅助牙医进行医疗诊断。开发工具为 VS 2017 + Qt5.13.2 + Vtk8.2.0。借助 Vtk 库,利用该库的工具函数进行牙齿的连通分量提取(即牙齿的分割),完成牙齿的计数;根据牙齿的中心点位置和包围盒的半径确定牙齿编号(FDI牙位表示法)和缺失情况;借助OBB包围盒确定牙齿轴向;利用 Vtk 的绘制函数将结果显示在屏幕上;借助 Qt 设计了简易的用户交互界面。
环境配置
本项目未上传整个工程,仅上传了源代码文件,见 / 文件夹。/data 提供了一些可供实验的牙齿模型文件。如有运行需求,请按照如下步骤配置依赖环境。
已实现的功能
使用VS运行工程,会显示该系统UI界面
关键算法
由此就得到了各个牙齿连通分量对应的编号,完成了牙齿的命名工作。代码实现详见 /tooth.h 。
本算法能保证较高的鲁棒性,即便是缺失了门牙或者最边缘的磨牙,依然能对牙齿进行正确的编号和缺失情况的正确识别。同时,该算法对牙齿进行编号的根据是牙齿坐标,而不是牙齿的具体形态,简单高效而又不失准确性。
未来需要优化的部分 ♻️ 资源
大小: 8.42MB
➡️ 资源下载:
注:如当前文章或代码侵犯了您的权益,请私信作者删除!