管钳咬合和原子缺陷检测

检测需求-原子缺陷检测专业显微镜可以确定单个原子的大体位置。这对于分析在p-n交叉点的晶体的栅格改变是非常有用的,在图像上非常实用的分割是关键的方法。

检测需求 - 原子缺陷检测

专业显微镜可以确定单个原子的大体位置,这对于分析在p-n交叉点的晶体的栅格改变是非常有用的,在图像上非常实用的分割是关键的方法。而实例的任务是在原子格结构中的不规则性特征中检测缺陷。

管钳咬合和原子缺陷检测

算法分析

由于在图像边界部分的原子只是部分可见的,首要的任务就是只提取出那些不靠近图像边界的原子,每一个暗的区域可以作为一个区域返回。

gauss_image (Image, ImageGauss, 5)

watersheds (ImageGauss, Basins, Watersheds)

管钳咬合和原子缺陷检测

然后,可以通过提取图像上不规则的特征,找出那些有不正常形状的原子缺陷。

select_shape (Basins, SelectedRegions1, 'column1', 'and', 2, Width-1)

select_shape (SelectedRegions1, SelectedRegions2, 'row1', 'and', 2, Height-1)

select_shape (SelectedRegions2, SelectedRegions3, 'column2', 'and', 1, Width-3)

select_shape (SelectedRegions3, Inner, 'row2', 'and', 1, Height-3)

select_shape (Inner, Irregular, 'compactness', 'and', 1.45, 3)

管钳咬合和原子缺陷检测

最后,图像分析后,根据缺陷类型,提取特征,显示结果。

检测需求 - 管钳咬合状态

实例的任务是演示如何使用基于组件的匹配来定位包含两个组件的管道扳手。因为部件的相对运动是复杂的手动描述,所以通过使用四个训练图像来自动地训练这些关系,这些图像显示两个部件的极端相对姿态,以便在以后的运行时图像中覆盖所有可能的相对姿态。

实例进一步展现所获得的部件的姿态参数如何可用于评估对象特定特征,例如,钳的开启角度和移位程度。在预先确定的4个关注区域的基础上,确定管钳咬合的状态。

算法分析

首先展示多张范例图训练各部分的相关运动。

read_image (ModelImage, 'pipe_wrench/pipe_wrench_model')

gen_rectangle2 (InitialComponentRegions, 212, 233, 0.62, 167, 29)

gen_rectangle2 (Rectangle2, 298, 363, 1.17, 162, 34)

gen_rectangle2 (Rectangle3, 63, 444, -0.26, 50, 27)

gen_rectangle2 (Rectangle4, 120, 473, 0, 33, 20)

InitialComponentRegions := [InitialComponentRegions,Rectangle2]

InitialComponentRegions := [InitialComponentRegions,Rectangle3]

InitialComponentRegions := [InitialComponentRegions,Rectangle4]

然后体现管钳咬合的各部分和其相关关系:

get_training_components (ModelComponents, ComponentTrainingID,'model_components', 'model_image', 'false', RowRef, ColumnRef,AngleRef, ScoreRef)

get_component_relations (Relations, ComponentTrainingID, i, 'model_image',Row, Column, Phi, Length1, Length2, AngleStart, AngleExtent)

在训练的基础上,各部分的实际模型就创建出来了,各部分的相互关系以一个树型结构表现出来。

create_trained_component_model (ComponentTrainingID, rad(-90), rad(180),

10, 0.6, 4, 'auto', 'none', 'use_polarity', 'false',ComponentModelID, RootRanking)

get_component_model_tree (Tree, Relations, ComponentModelID, RootRanking,'model_image', StartNode, EndNode, Row, Column, Phi, Length1,Length2, AngleStart, AngleExtent)

最后,用测试图片来确定管钳的模型状态,对每张图片,将模型轮廓被覆盖,转换和开口角部分显现出来。

find_component_model (SearchImage, ComponentModelID, RootRanking, rad(-90), rad(180), 0, 0, 1, 'stop_search', 'prune_branch', 'none', 0.6, 'least_squares', 0, 0.7, ModelStart, ModelEnd, Score, RowComp, ColumnComp, AngleComp, ScoreComp, ModelComp)

NumFound := |ModelStart|

if (NumFound)

get_found_component_model (FoundComponents, ComponentModelID, ModelStart, ModelEnd, RowComp, ColumnComp, AngleComp, ScoreComp, ModelComp, 0, 'false', RowCompInst, ColumnCompInst, AngleCompInst, ScoreCompInst)

visualize_pipe_wrench_match (AngleCompInst, WindowHandle, RowCompInst, ColumnCompInst,RowRef, ColumnRef)

endif

"管钳咬合和原子缺陷检测"的相关文章

热门关注