日期
05/28
2018
咨询
  • QQ扫一扫

  • Vision小助手
    (CMVU)

「行业应用」-- 拨码开关状态和血管宽度
收藏
2018-05-28 14:51:51来源: 中国机器视觉网

检测需求 - 拨码开关状态的检测
    检测开关适用于多种安装和致动配置,提供更大的灵活性和能力来针对具体应用需求配置开关。实例通过视觉检测拨码开关的位置,定位确定每个拨码开关相对于包装袋的位置。

算法分析
    使用组件的轮廓作为匹配的特征,为了确保在匹配参数中只涉及到显著特征,将对比度、收缩度和最小尺寸传递给训练样本。为了检查这三个参数的不同值的影响,并为某个应用找到最佳值,可以使用以下方法:
add_channels(InitialComponents, ModelImage, ModelImageInitComp)
 gen_initial_components (ModelImageInitComp,InitialComponentEdges, 45, 45, 30, 'connection', [], [])

    实例使用基于对象匹配来解决的定位分类,拨码开关一共由14部分组成:其中12个是开关,剩下2个是包装上的字符。通过训练样本来完成训练,训练样本上有各个开关所有可能出现的位置信息,这样,通过训练后系统知道开关相对于包装袋的运动参数信息。
train_model_components(ModelImage, InitialComponents, TrainingImages, ModelComponents, 45, 45, 30,0.95, -1, -1, rad(20), ’speed’,’rigidity’, 0.2, 0.5, ComponentTrainingID)


    为了使识别更加稳定可靠,要在训练运动中加入小容忍值。
modify_component_relations(ComponentTrainingID, ’all’,’all’, 0, rad(4))
    根据训练结果创建组件模型。模型组件的最小分数应单独设置。一方面,模块上的打印区域可以被遮挡,这需要低的最小分数。另一方面,特征区域必须与背景区分开来,这需要将相应的最小得分值设置为更高的值。
create_trained_component_model(ComponentTrainingID, 0, rad(360), 10, MinScoreComp,NumLevelsComp, ’auto’,’none’, ’use_polarity’,  ’false’,ComponentModelID, RootRanking)

    最后寻找拨码开关并得到每个拨码开关在包装袋的相对位置。基于此方法,全局的开关状态很容易被获得。
find_component_model(SearchImage, ComponentModelID, RootRanking, 0, rad(360), 0, 0, 0.5,’stop_search’, ’prune_branch’, ’none’, MinScoreComp, ’least_squares’, 0, 0.9,ModelStart, ModelEnd, Score, RowComp, ColumnComp, AngleComp, ScoreComp,ModelComp)

检测需求 - 血管宽度
    实例目标的是提取心脏X光图片中的血管,拍摄一系列血管的照片,使用造影剂技术使血管被着重渲染,可清晰地显示脑血管的位置及其分布情况,对于诊断来说,提取出血管的宽度是很重要的,通过确定确定血管局部狭窄的位置,可诊断动脉瘤和脑血管畸形、脑肿瘤等病变。

算法分析
    对图像进行预处理,设置相应的平滑滤波掩码大小,在平滑图像中设置对比度参数,突出特征点。然后使用lines_gauss函数可以提取血管,即图像XLD轮廓形式的血管中心。除此之外,还有一些轮廓的特征属性,即局部线的宽度显示成轮廓的形式。

lines_gauss (Angio, Lines, Sigma, Low, High,'dark', 'true', 'parabolic', 'true')
Number := |Lines|
for I:= 1 to Numberby1
Line := Lines[I]
get_contour_xld (Line, Row, Col)
get_contour_attrib_xld (Line, ’angle’, Angle)
get_contour_attrib_xld (Line, ’width_left’, WidthL)
get_contour_attrib_xld (Line, ’width_right’, WidthR)
RowR := Row+cos(Angle)*WidthR
ColR := Col+sin(Angle)*WidthR
RowL := Row-cos(Angle)*WidthL
ColL := Col-sin(Angle)*WidthL
disp_polygon (WindowID, RowL, ColL)
disp_polygon (WindowID, RowR, ColR)
endfor

 

    提取血管特征后,将显示线和背景之间的对比度扩大25%。

 

为你推荐