提取并分离X光片中金属丝
最新的版本的使用方式
- Enhancement Panel
- 参数pixel用于控制增强时的基准值的确定,当pixel值越接近交错区域铁丝的像素个数时,增强效果越好
- bright和dark用于确定图像中铁丝呈亮色还是暗色
- Segmentation Panel
- 点击SelectArea后,可以通过鼠标对选择铁丝网区域,可以裁掉远处背景,加速后继的处理
- spacing是算法在确定参考点时,两点的最短距离。参考点的位置,可以在完成处理后选择DisplayImage中的下拉框中的points查看
- bar在这里是阻拦的意思,当最小路径算法搜索到参考点时,会阻拦参考点附近距离"bar"以内的点,终止以这些点起始的搜索
- Display Image
- Select下拉框用于选择想要查看的图像
- label
- label为0是,显示分离结果,不同的金属丝路径对应不同的标号,并以不同颜色标志
- label大于0时,标号为label值的路径会被增强显示(加粗,红色)
- 在画路径时,由于先后顺序,若出现路径重合,后画的路径会覆盖原有路径,因此可能出现断裂(此为分离结果差,因此不予调节)
- Note
- 显示当前状态和错误信息
代码组织及思路
- 该仓库除master外有三个分支:tryMaskForCluster、tryLocalGrowing、tryMarkMethod
- 其中maskForCluster和localGrowing都是基于方向性检测,markMethod则是基于方向性增强后使用路径搜索
- 方向性检测
- cluster算法是将方向性和距离接近的点进行聚类
- 交点处点有多个方向,难以处理,不处理会出现分支,结果呈树状
- 同一条线的点被多条线使用(每个点仅被一条线使用)
- 通用骨架算法无法提供好的初始点
- localGrwing算法是将方向性和距离接近的点连接,同时对路径进行填充
- 时间复杂度高
- 代码复杂度高
- 难以确定合适的连接
- 线段过短
- 同一条线的点被多条线使用(每个点仅被一条线使用)
- cluster算法是将方向性和距离接近的点进行聚类
- 最短路径
- tryMarkMethod
- 或许命名为tryDistanceMethod更好一些
- 使用localGrowing的成果提取骨架中的部分点作为节点
- 使用调整过的最短路径搜索算法计算节点距离(当路径中遭遇另一节点时,尽可能终止该方向路径而不影响其他方向)
- 连接线段较长
- 时间复杂度较低,代码较易阅读
- 需要调整"spacing"和"bar"参数才能对差异大的图像均取得较好效果
- tryMarkMethod