tnblog
首页
视频
资源
登录

Halcon 基础应用(1)

2090人阅读 2024/4/28 9:20 总访问:3519024 评论:0 收藏:0 手机
分类: Halcon

Halcon 基础应用(1)

Halcon中的数组

创建数组

  1. ** 元组/数组
  2. ** 创建一个数组
  3. A := []
  4. A[0] := 1
  5. A[1] := 2

创建字典

  1. ** 创建一个字典
  2. dic:=dict{Name:'收拾'}

  1. ** 元组
  2. B := [1,[1,2,3]]
  3. R := B * 2

相加


数组相加前提是:两个数组要一致

  1. C:=[1,2,3]
  2. B:=[11,22,33]
  3. D:=B+C
  4. ** 求数组的长度
  5. len := |D|
  6. ** 求元素的个数
  7. tuple_length (D,len1)
  8. ** 通过下标获取元素值,下标是从0开始
  9. value := D[2]

批量赋值

  1. A:=[10,20,30,40,50]
  2. A[6]:=100
  3. *赋值 [100, 20, 30, 40, 50, 0, 100]
  4. A[0,2,3]:=99
  5. *批量赋值 [99, 20, 99, 99, 50, 0, 100]
  6. *下标是要赋值的位置序号
  7. B:=[10:15]
  8. *[10, 11, 12, 13, 14, 15]
  9. *B的值为1015的连续值
  10. B1:=[10:2:20]
  11. *[10, 12, 14, 16, 18, 20]
  12. *B1的值为1020的连续值,步长为2,步长可以为负数

元组操作

  1. A:=[10,30,20,40,50]
  2. B:=[1,30,20,4,5]
  3. tuple_union(A,B,C)
  4. *C的值为 [1, 4, 5, 10, 20, 30, 40, 50]
  5. *两个数组进行合并操作,并自动排序【对两个数组进行并集操作】
  6. *注意:合并时重复的元素只出现一次
  7. tuple_intersection(A,B,D)
  8. *D的值为 [20, 30]
  9. *对两个数组进行交集操作,并自动排序
  10. tuple_replace (A, [0,2], ['100','200'], E)
  11. *E的值为 ['100', 30, '200', 40, 50]
  12. *替换操作
  13. *参数2:要替换的位置序号
  14. *参数3:要替换的值
  15. *参数4:替换后保存的数组变量
  16. tuple_insert (A, 3, '500', F)
  17. *F的值为 [10, 30, 20, '500', 40, 50]
  18. *插入元素
  19. *参数2:插入的位置序号
  20. *参数3:插入的值
  21. *参数4:插入后保存的数组变量

  1. **数组的初始化
  2. A := [1,2,3,4]
  3. **定义空数组,逐渐追加元素
  4. A :=[ ]
  5. for i :=0 to 4 by 1
  6. A:= [A,i]
  7. endfor
  8. **连接两个tuple数组到第三个tuple
  9. tuple1[0] := 1
  10. tuple2[0] := 3
  11. tuple_concat(tuple1,tuple2, Concat)
  12. **返回一个随机数tuple数组,数值分布在[0,1)之间
  13. tuple_rand(5,tmp)
  14. **生成一个指定长度和初始化值的数组
  15. tuple_gen_const(5, 100, Result )
  16. **初始化数组,指定开始值,终止值,步长,得到sequence
  17. tuple_gen_sequence (1, 20, 2, Sequence)

  1. i1:=123$'#o'
  2. *$'#o' 十进制转换成8进制数据
  3. *'0173' 0为前缀
  4. i2:=123$'#x'
  5. *$'#x' 十进制转换成16进制数据
  6. *'0x7b' 0x为前缀 字母小写
  7. i3:=123$'#X'
  8. *$'#X' 十进制转换成16进制数据
  9. *'0X7B' 0X为前缀 字母大写
  10. i4:=123$'#f'
  11. * double型,默认保留小数点后六位
  12. * '123.000000'
  13. i5:=123$'#g'
  14. *'123.000' 使数字始终保持六位,不足补零
  15. i6:=12345678$'#g'
  16. * '1.23457e+007'
  17. i7:=123$'#G'
  18. *'123.000' 使数字始终保持六位,不足补零
  19. i8:=12345678$'#G'
  20. * '1.23457E+007'
  21. i9:=5432178$'#e'
  22. *$'#e' 转换成科学计数 '5.432178e+006'
  23. i10:=5432178$'#E'
  24. *$'#E' 转换成科学计数 '5.432178E+006'
  25. i11:=2.7$'6'
  26. *$'6' 小于六位时,文本右对齐,大于不影响
  27. * ' 2.7'
  28. i12:=2.7$'-6'
  29. *$'-6' 小于六位时,文本左对齐,大于不影响
  30. * '2.7 '
  31. i13:=2$'.6'
  32. *小于六位时,在左补零,大于不影响
  33. * '000002'
  34. *注意:针对整数,小数无效
  35. i14:=2.8$'.6'
  36. *'2.8' 小数无效
  37. i15:=267$'10.6'
  38. *小于十位时,文本右对齐;小于6位则在左补零,大于不影响
  39. *' 000267'
  40. i16:=26.7$'10.6'
  41. *注意:补零功能针对整数,小数无效
  42. *' 26.7'

Halcon文件操作

  1. dev_get_window (WindowHandle)
  2. * 遍历文件夹
  3. list_files ('C:/Users/Gerry/Desktop/halcon deeplearn/Train_images', ['files', 'recursive'], Files)
  4. list_image_files ('C:/Users/Gerry/Desktop/halcon deeplearn/Train_images/梨', 'default', [], ImageFiles)
  5. * 筛选bmpjmp格式的图片
  6. tuple_regexp_select(ImageFiles, ['\\.(bmp|jpg)$','ignore_case'], Files)
  7. * 打开窗口
  8. dev_open_window (0, 0, 512, 512, 'black', WindowHandle1)
  9. * 依次读取所选图片并显示 在窗口中
  10. for Index := 0 to |ImageFiles| - 1 by 1
  11. read_image (Image, ImageFiles[Index])
  12. dev_display(Image)
  13. * 分割文件名
  14. parse_filename(ImageFiles[Index], BaseName, Extension, Directory)
  15. * 保存图片,给出路径及名称,新文件名为在原文件名后添加_adj
  16. dump_window(WindowHandle,'bmp',Directory + BaseName + '_adj')
  17. stop ()
  18. endfor


继续F5可以跳入下一张图片

图像读取

  1. read_image (Image, 'printer_chip/printer_chip_02')
  2. read_image (Image1, ['printer_chip/printer_chip_01', 'printer_chip/printer_chip_05'])
  3. ** 选择对象中目录
  4. select_obj (Image1, ObjectSelected, 1)
  5. ** 统计对象中目录数量
  6. count_obj (Image1, Number)


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

Halcon 学习笔记一

Halcon 学习笔记一[TOC] Halcon学习笔记一 算子 描述 dev_ 系统、窗口相关算子 read_ 与读相关算子...

Halcon 图像增强

Halcon 图像增强[TOC] 概念和分类图像增强:有目的的强调图像的整体或局部特性,将原来不清晰的图像变得清晰或强调某些感...

Halcon的Blob分析

Halcon的Blob分析[TOC] 什么是Blob分析图像处理(image processing),用计算机对图像进行分析,以达到所需结果的技术。又称...

Halcon 图像分割

Halcon 图像分割[TOC] 边缘检测边缘检测简介边缘是指图像中像素灰度有阶跃变化或屋顶状变化的那些像素的集合。它包含了丰...

递归基础应用

前言什么是递归?递归使用的就是自己调用自己的方法,并设置一个停止条件,当所有数据都满足到停止条件的时候,递归算法就...

css弹性盒子,flex布局

css弹性盒子由于版本不同浏览器问题造成了一些不同的写法display:flexbox;在google浏览器中如果使用下面的写法就不行displa...

NET Core 使用 EF Code First

下面这些内容很老了看这篇:https://www.tnblog.net/aojiancc2/article/details/5365 项目使用多层,把数据库访问...

Windows平台分布式架构实践 - 负载均衡

原文地址: https://www.cnblogs.com/atree/p/windows_loadbalancer.html 概述  最近.NET的世界开始闹腾了,微软官方终...

css实现简单矩形对话框

在前端做项目时,我们可能会遇到写对话框的需求,这次做视频会议页面就遇到了,记录下日后有个参照。//网页部分 <divcla...

webstorm破解激活方法

破解webstorm试了很多方法:License server填入网址;搭建本地服务器;其他版本破解补丁都没用最后用3.1版本的jar包才破解...

cAPS.NET 保存base64位格式的图片

publicvoidUpload() { //取出图片对应的base64位字符 stringimgBase=Request["imgBase"]; //c#里边的base6...

使用OLEDB读取不同版本Excel的连接字符串设置

使用OleBD读取excel的时候,excel不同的版本,连接字符串的写法也会不一样。///<summary> ///读取excel ///</su...

vs2017 对 COM 组件的调用返回了错误 HRESULT E_FAIL

vs2017添加引用报错 对 COM 组件的调用返回了错误 HRESULT E_FAIL 1.以管理员身份打开vs2017开发人员命令指示符 2...

分布式服务架构与微服务架构概念的区别与联系

分布式:分散压力。微服务:分散能力。当下理解分布式:不同模块部署在不同服务器上作用:分布式解决网站高并发带来问题集...

NPOI操作excel 2007/2010版本

HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xlsXSSFWorkbook:是操作Excel2007的版本,扩展名是.xlsx先...
这一世以无限游戏为使命!
排名
2
文章
644
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 : 好是好,这个对效率影响大不大哇,效率高不高
ASP.NET Core 服务注册生命周期
剑轩 : http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术