软件基于下述要求实现功能:
要求一:该模块参数配置界面可以导入一个或多个DXF文件,从DXF文件中读出图形并显示。
要求二:用户在显示的图形中配置矩形框或圆形区域,矩形框配置后显示图纸中的标准距离,圆形配置后显示圆心、半径。
要求三:在运行时,该模块对输入的图像进行匹配,判断图像里的物体符合哪一个DXF图纸。
要求四:并根据匹配到的物体位置和配置的矩形,圆形位置输出当前图像应检测的矩形,圆形位置。
制作思路:
要求一:
1、重写dxf库虚函数,解析DXF文件中的基本图元(直线、圆、圆弧、椭圆、样条曲线)。处理DXF与Qt的不同坐标系差异,将基本图元转换为对应的QGraphicsItem。
2、通过对DXF文件中的块、图层、线型添加过滤条件,自动排除DXF文件中的标注元素(尺寸线、标注文本)和辅助参考线(中心线、轴线等非关键图形)。
3、将DXF文件中的尺寸单位(mm)转换至像素,适配不同分辨率的显示设备,将其绘制至继承于GraphicsView的自定义类中(可进行图像放缩),并标记DXF图形项以便后续选择操作。
要求二:
1、创建一个自定义绘图场景类(继承QGraphicsScene),重写鼠标事件完成通过鼠标点击进行交互图形的绘制,并实时显示尺寸标注(对应图纸尺寸)。
2、提供清除所有图形、获取绘制的图形上的dxf区域的接口。
3、利用枚举量DrawMode控制当前的绘制模式(矩形/圆形/无),标定标准图纸尺寸与图形绘制像素的比例关系。
要求三:
1、利用QFileDialog允许用户多选图片文件并将所有图片存储于容器中,通过下拉框进行切换显示与当前操作的工件图。
2、通过CLAHE增强、双边滤波和多尺度Canny边缘检测提取特征,结合形态学闭运算优化轮廓连续性,利用层级轮廓分析和凸包计算重构工件几何特征,最终根据轮廓面积阈值和预设规则将检测结果映射到对应的DXF工程图纸文件。
要求四:
1、对工件图作与图纸判断相同的图像处理操作。
2、使用多阶段匹配算法,提取模板图像的轮廓特征作为基准,通过多阶段匹配算法来实现匹配。第一阶段计算模板凸包,筛选外部轮廓匹配度最高的候选,第二阶段比较内部轮廓数量与模板的差异,当外部轮廓分数接近时用第二阶段辅助判据。基于匹配轮廓计算工件与模板之间的缩放比例与旋转角度,实现ROI区域的精确定位。