Skip to content

KnockHarder/WiresSegmentation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WiresSegmentation

提取并分离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算法是将方向性和距离接近的点连接,同时对路径进行填充
      • 时间复杂度高
      • 代码复杂度高
      • 难以确定合适的连接
      • 线段过短
      • 同一条线的点被多条线使用(每个点仅被一条线使用)
  • 最短路径
    • tryMarkMethod
      • 或许命名为tryDistanceMethod更好一些
      • 使用localGrowing的成果提取骨架中的部分点作为节点
      • 使用调整过的最短路径搜索算法计算节点距离(当路径中遭遇另一节点时,尽可能终止该方向路径而不影响其他方向)
      • 连接线段较长
      • 时间复杂度较低,代码较易阅读
      • 需要调整"spacing"和"bar"参数才能对差异大的图像均取得较好效果

About

从X光片中提取金属丝

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages