基于组件的电子元器件匹配定位实例

原图

模板

在这里插入图片描述

待检测图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码

*这个示例程序演示了如何使用基于组件的匹配来定位复合对象。
*在这种情况下,应该在图像中找到几个模块,其中的关系,即,相对运动,由用户知道。
*因此,创建组件模型只需要一个操作符
*     1.)  create_component_model
*最后,查找组件模型
*     2.)  find_component_model
* 
dev_update_off ()
dev_close_window ()
read_image (ModelImage, 'modules/modules_model')
dev_open_window_fit_image (ModelImage, 0, 0, -1, -1, WindowHandle)
dev_display (ModelImage)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
Message := 'This program shows how to use the'
Message[1] := 'component-based matching'
Message[2] := 'to locate a compound object'
disp_message (WindowHandle, Message, 'window', 12, 12, 'black', 'true')
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
* 
* 定义组件区域
gen_rectangle2 (ComponentRegions, 318, 109, -1.62, 34, 19)
gen_rectangle2 (Rectangle2, 342, 238, -1.63, 32, 17)
gen_rectangle2 (Rectangle3, 355, 505, 1.41, 25, 17)
gen_rectangle2 (Rectangle4, 247, 448, 0, 14, 8)
gen_rectangle2 (Rectangle5, 237, 537, -1.57, 13, 10)
concat_obj (ComponentRegions, Rectangle2, ComponentRegions)
concat_obj (ComponentRegions, Rectangle3, ComponentRegions)
concat_obj (ComponentRegions, Rectangle4, ComponentRegions)
concat_obj (ComponentRegions, Rectangle5, ComponentRegions)
dev_set_colored (12)
dev_set_draw ('margin')
dev_set_line_width (2)
dev_display (ModelImage)
dev_display (ComponentRegions)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
disp_message (WindowHandle, 'Regions of the components', 'window', 12, 12, 'black', 'true')
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
* 
* 创建组件模型
create_component_model (ModelImage, ComponentRegions, 20, 20, rad(25), 0, rad(360), 15, 40, 15, 10, 0.8, [4,3,3,3,3], 0, 'none', 'use_polarity', 'true', ComponentModelID, RootRanking)
* 
* 查找组件
ImageName := 'modules/modules_'
for I := 1 to 12 by 1
    read_image (SearchImage, ImageName + I$'.2d')
    find_component_model (SearchImage, ComponentModelID, RootRanking, 0, rad(360), 0.5, 0, 0.5, 'stop_search', 'search_from_best', 'none', 0.8, 'interpolation', 0, 0.8, ModelStart, ModelEnd, Score, RowComp, ColumnComp, AngleComp, ScoreComp, ModelComp)
    dev_display (SearchImage)
    * 最小外接矩形框选并显示轮廓
    for Match := 0 to |ModelStart| - 1 by 1
        dev_set_line_width (1)
        get_found_component_model (FoundComponents, ComponentModelID, ModelStart, ModelEnd, RowComp, ColumnComp, AngleComp, ScoreComp, ModelComp, Match, 'false', RowCompInst, ColumnCompInst, AngleCompInst, ScoreCompInst)       
        smallest_rectangle2 (FoundComponents, Row, Column, Phi, Length1, Length2)
        gen_rectangle2 (Rectangle, Row, Column, Phi, Length1, Length2)
        dev_display (FoundComponents)
        dev_display (Rectangle)
    endfor
    disp_message (WindowHandle, 'Found component models', 'window', 12, 12, 'black', 'true')
    if (I < 12)
        disp_continue_message (WindowHandle, 'black', 'true')
    endif
    dump_window (WindowHandle, 'png', 'results/匹配定位结果'+I)
    stop ()
endfor

结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
解决方案指导------匹配(Matching)(1章、2章、3章) 1 第一章 简介 5 1.1 怎样使用该手册? 5 1.2 匹配是什么? 5 1.3 如何进行一般的匹配? 6 1.4 可用的方法有哪些? 6 1.5哪种方法适用于哪种情况? 7 1.5.1 匹配方法:2D与3D的比较 7 1.5.2 3D空间中3D对象和2D对象的决策 8 1.5.3 正交成像2D对象的第一个决策 10 1.5.4 基于形状的匹配VS基于相关性的匹配 11 1.5.5匹配方法的快速指南 12 第二章 总论 14 2.1 准备模板 15 2.1.1 将参考图像简化为模板图像 15 2.1.2 感兴趣区域的影响 16 2.1.2.1参照点 16 2.1.3 合成模型作为模板图像的替代品 18 2.2 模板再使用 23 2.3加快搜索速度 24 2.3.1限制搜索空间 24 2.3.2关于二次抽样 25 2.4 使用匹配结果 28 2.4.1 单个匹配方法的结果 28 2.4.2 关于转换 30 2.4.3 使用估计的二维位置和方向 33 2.4.4使用估计的二维尺度 43 2.4.5使用估计的二维单应矩阵 45 2.4.6使用估计的三维姿态 47 2.4.7关于分数 49 第三章 单个方法 50 3.1 基于灰度的匹配 50 3.2 基于相关性的匹配 51 3.2.1 一个例程 51 3.2.2选择模型ROI 53 3.2.3建立合适的NCC模型 53 3.2.4优化搜索过程 55 3.3 基于形状的匹配 56 3.3.1 一个例子 57 3.3.2选择模型ROI 60 3.3.3创建合适的形状模型 62 3.3.4优化搜索过程 69 3.3.5使用基于形状匹配的具体结果 80 3.3.6适应相机方向的改变 82 3.4基于组件匹配 83 3.4.1一个例子 84 3.4.2提取初始组件 87 3.4.3创建合适的组件模型 88 3.4.4模型实例的搜索 95 3.4.5使用基于组件匹配的具体结果 98 3.5局部形变匹配 100 3.5.1一个例子 100 3.5.2选择模型ROI 104 3.5.3建立合适的局部变形模型 104 3.5.4优化搜索过程 107 3.5.5使用局部形变匹配的具体结果 109 3.6透视变形匹配 111 3.6.1一个例子 112 3.6.2选择模型ROI 114 3.6.3创建合适的透视图变形模型 114 3.6.4优化搜索过程 118 3.6.5使用透视图变形匹配的具体结果 120 3.7 基于描述符的匹配 122 3.7.1一个例子 122 3.7.2选择模型ROI 125 3.7.3创建合适的描述符模型 125 3.7.4优化搜索过程 128 3.7.5使用基于描述符匹配的具体结果 130

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值