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

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

在这里插入图片描述
效果(其中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
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Halcon是一款强大的机器视觉软件库,它提供了丰富的功能和算法用于图像处理和分析。如果您想在C#中使用Halcon进行机器视觉开发,可以通过以下步骤进行: 1. 安装Halcon:首先,您需要从Halcon官方网站下载和安装Halcon开发环境。确保选择与您的操作系统和开发环境兼容的版本。 2. 配置Halcon与C#:在安装完成后,您需要在Visual Studio中配置Halcon与C#的集成。这涉及到引用Halcon的相关库和设置项目属性。 3. 编写C#代码:一旦完成了配置,您就可以开始编写C#代码来调用Halcon的功能了。您可以使用Halcon提供的API来加载图像、进行图像处理、执行算法等。 以下是一个简单的示例代码,演示如何使用Halcon库在C#中进行图像处理: ```csharp using HalconDotNet; class Program { static void Main(string[] args) { // 初始化Halcon引擎 HOperatorSet.OpenWindow(0, 0, 800, 600, "visible", "", out HTuple windowHandle); // 读取图像 HOperatorSet.ReadImage(out HObject image, "path/to/image.jpg"); // 显示图像 HOperatorSet.DispObj(image, windowHandle); // 进行图像处理 HOperatorSet.InvertImage(image, out HObject invertedImage); // 显示处理后的图像 HOperatorSet.DispObj(invertedImage, windowHandle); // 关闭Halcon引擎 HOperatorSet.CloseWindow(windowHandle); HOperatorSet.ClearWindow(windowHandle); } } ``` 这只是一个简单的示例,您可以根据自己的需求调用更多的Halcon功能和算法。请注意,Halcon具有非常丰富的功能,我们只是展示了其中的一部分。 希望这对您有所帮助!如果您有任何进一步的问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值