机器视觉halcon学习——定位角

本文介绍了使用Halcon进行机器视觉角点定位的方法,通过五个步骤,包括模板匹配,详细阐述了如何从图像中找到角点,并提供了关键代码示例。重点关注模板创建、角度设置和匹配过程。
摘要由CSDN通过智能技术生成

目的:给你一组图片,如何找到里面的角

在这里插入图片描述
效果(其中x y 是角的定点的坐标)
在这里插入图片描述
代码

dev_update_off()
dev_close_window()
dev_open_window(0, 0, 600, 600, 'black', WindowHandle)
dev_set_line_width(3)
read_image(Image,'D:/定位角/Image_0001664162743348.bmp')
list_files('D:/1207_培训/培训计划/halcon培训测试题/模板匹配/测试题/定位角',['files','follow_links'],ImageFiles)
tuple_regexp_select(ImageFiles, '.*', ImageFiles)
dev_set_color('red')
for imgIndex :=0 to |ImageFiles| -1 by 1
    read_image(Image,ImageFiles[imgIndex])
rgb1_to_gray(Image, GrayImage)
    threshold (GrayImage, Regions, 10, 255)
dev_set_draw('margin') 
*裁剪一块区域,给当模板
reduce_domain(GrayImage, Regions, ImageReduced1)
create_shape_model(ImageReduced1, 'auto', rad(-180), rad(180), 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID1)
*监视模板
inspect_shape_model(ImageReduced1, ModelImages1, ModelRegions1, 1, 30)
*获取模板轮廓
get_shape_model_contours(ModelContours1, ModelID1, 1)
*查找模板
    find_shape_model(Image, ModelID1, -0.39, 0.79, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)
    dev_display_shape_matching_results(ModelID1, 'red', Row, Column, Angle, 1, 1, 0)
    dev_display(GrayImage)
    dev_display(ModelRegions1)
    disp_message(WindowHandle,['x:'+ Row,'y:'+Column], 'window', 30, 30, 'black', 'true')
    stop()
endfor

主要用到的是模板匹配,主要是五个步骤,其中3,4也不太重要。
1.裁剪出你要找的区域,当成模板。(这里看到过一个比较好理解的例子,就是你手里有一张合照,你将里面某个人的照片裁剪下来,当成模板,然后去别的合照里面比对,找到这个照片。大概就是这个意思啦)
2.创建模板。这个要注意的就是参数问题了:

create_shape_model(ImageReduced1, ‘auto’, rad(-180), rad(180), ‘auto’, ‘auto’, ‘use_polarity’, ‘auto’, ‘auto’, ModelID1)

  1. 第一个参数是你裁剪下来的区域。
  2. 金字塔的层数。从下往上12345,层数越高,识别到的像素点越少,提取到的特征也就越少,模板更不易识别出来。层数太低,像素多,匹配时间多。所以要选取一个合理的值。
  3. 角度,这个也可以用rad(45)弧度制表示。
  4. 也是角度。这两个角度一个是开始的,一个是结束的。
  5. 旋转角度的步长。
  6. 设置模板优化和创建方法。这里有三种常见的: ‘use_polarity’ / ‘ignore_global_polarity ‘’ /‘ignore_local_polarity’可以根据单词字面意思理解。
  7. 设置对比度
  8. 最小对比度
  9. 输出

3.监视模板
4.获取模板的轮廓
5.查找模板。这个也要注意参数:

find_shape_model(Image, ModelID1, -0.39, 0.79, 0.5, 1, 0.5, ‘least_squares’, 0, 0.9, Row, Column, Angle, Score)

  1. 要搜索的模板
  2. 搜索时候的起始角度
  3. 搜索的结束的角度
  4. 最小匹配值
  5. 要输出的匹配的最大个数
  6. 当找的目标存在折叠时
  7. 计算精度
  8. 金字塔的层数
  9. 贪婪度
  10. 输出匹配位置的行
  11. 输出匹配位置的列
  12. 输出匹配位置的角度
  13. 输出匹配位置的得分
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值