合集-Halcon视觉算子基础
摘要:
由于当前社会人力成本越来越昂贵,机器取代人力是大势所趋,自动化的发展也随之越来越快 。当制造公司需 要一双手和一对 眼睛的时候却不得不雇佣一个人的苦恼日益加重,而传统的机器设计和电气自动化的发展,解决一双手的问题已经渐渐得到了缓解,现在就到了需要解决一双眼睛的时候,机器视觉的出现和广泛应用也随着到来
阅读全文
由于当前社会人力成本越来越昂贵,机器取代人力是大势所趋,自动化的发展也随之越来越快 。当制造公司需 要一双手和一对 眼睛的时候却不得不雇佣一个人的苦恼日益加重,而传统的机器设计和电气自动化的发展,解决一双手的问题已经渐渐得到了缓解,现在就到了需要解决一双眼睛的时候,机器视觉的出现和广泛应用也随着到来
阅读全文
摘要:
1. 下载Halcon17版本到到本地 2. 双击安装包后 3. 步骤如下 1.2 Halcon软件安装 界面分为四大块 1. Halcon的五个助手 1) 图像采集助手:与相机连接,设定相机参数,采集图像 2) 标定助手:九点标定或是其它的标定,生成标定文件及内参外参,可以将像素单位转换为长度单位
阅读全文
1. 下载Halcon17版本到到本地 2. 双击安装包后 3. 步骤如下 1.2 Halcon软件安装 界面分为四大块 1. Halcon的五个助手 1) 图像采集助手:与相机连接,设定相机参数,采集图像 2) 标定助手:九点标定或是其它的标定,生成标定文件及内参外参,可以将像素单位转换为长度单位
阅读全文
摘要:
2.1什么是算子? 算子就是由Halcon开发团队对图像处理的算法进行封装为方法由我们使用,作用就是对图像数据进行处理 2.2算子的格式? 算子名称(图像输入参数,图像输出参数,控制输入参数,控制输出参数) 算子结构中的四种参数被三个冒号分割开,一个算子中可能这四种参数不会都存在,但是参数的次序不会
阅读全文
2.1什么是算子? 算子就是由Halcon开发团队对图像处理的算法进行封装为方法由我们使用,作用就是对图像数据进行处理 2.2算子的格式? 算子名称(图像输入参数,图像输出参数,控制输入参数,控制输出参数) 算子结构中的四种参数被三个冒号分割开,一个算子中可能这四种参数不会都存在,但是参数的次序不会
阅读全文
摘要:
HTuple类型: 既可以表示的类型有int,double、float、string,既可以表示单个值; 可以是容器; 可以是数组,数组遍历时需要有下标,如:变量名称[下标] 字符串表示:tuple:='扩视机器视觉' Tuple:表示变量,自定义名称 “:=“:为赋值符号,将右边的值赋值给左边变量
阅读全文
HTuple类型: 既可以表示的类型有int,double、float、string,既可以表示单个值; 可以是容器; 可以是数组,数组遍历时需要有下标,如:变量名称[下标] 字符串表示:tuple:='扩视机器视觉' Tuple:表示变量,自定义名称 “:=“:为赋值符号,将右边的值赋值给左边变量
阅读全文
摘要:
2.8 循环 While循环:只要满足条件就一直循环 示例: b:=0 //初始化值 while (n>10) //判断如果条件成立就一直执行 里面的语句 b:=b+1 //b加1后重新赋值给b **等待 wait_seconds (1) endwhile For循环: 示例: f:=0 //初始化
阅读全文
2.8 循环 While循环:只要满足条件就一直循环 示例: b:=0 //初始化值 while (n>10) //判断如果条件成立就一直执行 里面的语句 b:=b+1 //b加1后重新赋值给b **等待 wait_seconds (1) endwhile For循环: 示例: f:=0 //初始化
阅读全文
摘要:
观察图像->确定目标区域->去除不相关的干扰->缩小目标范围->找到目标 缩小目标区域时保证其稳定性 不被变换的图像干扰 算子只是工具 会使用即可 不必追究根底 研究算子是算法工程师的活 我们捡现成的就行 任何工具只有用的多了才会熟练 正所谓熟练生巧 唯熟尔 关键就是要多练习 切记勿眼高手低 想要达
阅读全文
观察图像->确定目标区域->去除不相关的干扰->缩小目标范围->找到目标 缩小目标区域时保证其稳定性 不被变换的图像干扰 算子只是工具 会使用即可 不必追究根底 研究算子是算法工程师的活 我们捡现成的就行 任何工具只有用的多了才会熟练 正所谓熟练生巧 唯熟尔 关键就是要多练习 切记勿眼高手低 想要达
阅读全文
摘要:
图像: 灰度图像:黑白色组成的图像,组成图像的每个像素的值用灰度值表示,范围为0-255;以128为界限 越偏向0越黑 越偏向255越白 彩色图像:彩色图像的每个像素是由三基色红,蓝,绿组成,每个色的范围0-255,三色又称为三通道 区域: 如果说图像是用灰度值描述像素点,区域就可以用0或1来描述像
阅读全文
图像: 灰度图像:黑白色组成的图像,组成图像的每个像素的值用灰度值表示,范围为0-255;以128为界限 越偏向0越黑 越偏向255越白 彩色图像:彩色图像的每个像素是由三基色红,蓝,绿组成,每个色的范围0-255,三色又称为三通道 区域: 如果说图像是用灰度值描述像素点,区域就可以用0或1来描述像
阅读全文
摘要:
图像中的字体设定set_display_font 算子:set_display_font( : : WindowHandle, Size, Font, Bold, Slant : ) 示例:set_display_font (200000, 24, 'mono', 'true', 'false')
阅读全文
图像中的字体设定set_display_font 算子:set_display_font( : : WindowHandle, Size, Font, Bold, Slant : ) 示例:set_display_font (200000, 24, 'mono', 'true', 'false')
阅读全文
摘要:
图像分割介绍,先定位一个大的特征->内部特征->分割 灰度直方图:如下图所示 阈 值 分 割: threshold全局固定阈值分割 算子:threshold(Image : Region : MinGray, MaxGray : ) 示例:threshold (GrayImage, Regions,
阅读全文
图像分割介绍,先定位一个大的特征->内部特征->分割 灰度直方图:如下图所示 阈 值 分 割: threshold全局固定阈值分割 算子:threshold(Image : Region : MinGray, MaxGray : ) 示例:threshold (GrayImage, Regions,
阅读全文
摘要:
集合运算 将多个区域连接为一个区域:union1 算子:union1(Region : RegionUnion : : ) 示例:union1 (ConnectedRegions, RegionUnion) ConnectedRegions(输入对象):输入多个区域 RegionUnion(输出对象
阅读全文
集合运算 将多个区域连接为一个区域:union1 算子:union1(Region : RegionUnion : : ) 示例:union1 (ConnectedRegions, RegionUnion) ConnectedRegions(输入对象):输入多个区域 RegionUnion(输出对象
阅读全文
摘要:
开运算opening 以输入的参数形成的区域为基准,对目标区域进行模拟放置,能将参数形成的区域填满的保留,填不满开掉去除 先腐蚀后膨胀 作用 祛杂点 扩展链接:https://blog.csdn.net/qq_31671139/article/details/113184854 算子:opening
阅读全文
开运算opening 以输入的参数形成的区域为基准,对目标区域进行模拟放置,能将参数形成的区域填满的保留,填不满开掉去除 先腐蚀后膨胀 作用 祛杂点 扩展链接:https://blog.csdn.net/qq_31671139/article/details/113184854 算子:opening
阅读全文
摘要:
画 ROI 区域并生成区域 画draw_?circle/ellipse/rectangle1/rectangle2/line, 生成一个的区域gen_?circle/ellipse/rectangle1/rectangle2/line 画··········· 算子:draw_circle( : :
阅读全文
画 ROI 区域并生成区域 画draw_?circle/ellipse/rectangle1/rectangle2/line, 生成一个的区域gen_?circle/ellipse/rectangle1/rectangle2/line 画··········· 算子:draw_circle( : :
阅读全文
摘要:
点到点 distance_pp 算子:distance_pp( : : Row1, Column1, Row2, Column2 : Distance) 示例:distance_pp (10, 10, 100, 100, Distance) 10(输入参数1):输入第一个点的行坐标 10(输入参数2
阅读全文
点到点 distance_pp 算子:distance_pp( : : Row1, Column1, Row2, Column2 : Distance) 示例:distance_pp (10, 10, 100, 100, Distance) 10(输入参数1):输入第一个点的行坐标 10(输入参数2
阅读全文
摘要:
平移 move_region 缩放 zoom_region 镜像 mirror_region 倒置 transpose_region 6.2仿射变换 刚性仿射变换 vector_angle_to_rigid 对图像,区域进行仿射变换 算子:vector_angle_to_rigid( : : Row
阅读全文
平移 move_region 缩放 zoom_region 镜像 mirror_region 倒置 transpose_region 6.2仿射变换 刚性仿射变换 vector_angle_to_rigid 对图像,区域进行仿射变换 算子:vector_angle_to_rigid( : : Row
阅读全文
摘要:
7.1识别一维码的流程和方法 一维码的码制: 一维条码即指条码条和空的排列规则,常用的一维码的码制包括:EAN 码、39 码、 交叉 25 码、UPC 码、128 码、93 码,ISBN 码,及 Codabar (库德巴码)等 识别过程: 创建条形码模型 create_bar_code_model
阅读全文
7.1识别一维码的流程和方法 一维码的码制: 一维条码即指条码条和空的排列规则,常用的一维码的码制包括:EAN 码、39 码、 交叉 25 码、UPC 码、128 码、93 码,ISBN 码,及 Codabar (库德巴码)等 识别过程: 创建条形码模型 create_bar_code_model
阅读全文
摘要:
均值滤波:mean_image 算子:mean_image(Image : ImageMean : MaskWidth, MaskHeight :) 示例:mean_image (Image5, ImageMean1, 3, 3) Image5(输入对象):输入灰度图像 ImageMean1(输出对
阅读全文
均值滤波:mean_image 算子:mean_image(Image : ImageMean : MaskWidth, MaskHeight :) 示例:mean_image (Image5, ImageMean1, 3, 3) Image5(输入对象):输入灰度图像 ImageMean1(输出对
阅读全文
摘要:
2.1识别 OCR 的流程和方法 处理图像使得数字或是字母为白底黑字->创建字符识别句柄->识别->清除句柄 算子:read_ocr_class_mlp( : : FileName : OCRHandle) 示例:read_ocr_class_mlp ('Document_0-9A-Z_NoRej.
阅读全文
2.1识别 OCR 的流程和方法 处理图像使得数字或是字母为白底黑字->创建字符识别句柄->识别->清除句柄 算子:read_ocr_class_mlp( : : FileName : OCRHandle) 示例:read_ocr_class_mlp ('Document_0-9A-Z_NoRej.
阅读全文
摘要:
灰度膨胀运算gray_dilation_rect 算子gray_dilation_rect(Image : ImageMax : MaskHeight, MaskWidth : ) 示例:gray_dilation_rect (Image, ImageMax, 11, 11) Image(输入对象)
阅读全文
灰度膨胀运算gray_dilation_rect 算子gray_dilation_rect(Image : ImageMax : MaskHeight, MaskWidth : ) 示例:gray_dilation_rect (Image, ImageMax, 11, 11) Image(输入对象)
阅读全文
摘要:
5.1相机标定过程 畸变矫正和图像坐标系向世界坐标系转换 九点标定: gen _caltab(行个数, 列个数, 圆形之间的间距单位M, 圆的半径与圆心间距之间的比值, 生成的文件名称caltab.descr', 'caltab.ps') 生成标定板的描述文件进行保存 CameraParameter
阅读全文
5.1相机标定过程 畸变矫正和图像坐标系向世界坐标系转换 九点标定: gen _caltab(行个数, 列个数, 圆形之间的间距单位M, 圆的半径与圆心间距之间的比值, 生成的文件名称caltab.descr', 'caltab.ps') 生成标定板的描述文件进行保存 CameraParameter
阅读全文
摘要:
6.1XLD 的生成和提取 XLD 的创建 生成圆轮廓gen_circle_contour_xld 算子:gen_circle_contour_xld( : ContCircle : Row, Column, Radius, StartPhi, EndPhi, PointOrder, Resolut
阅读全文
6.1XLD 的生成和提取 XLD 的创建 生成圆轮廓gen_circle_contour_xld 算子:gen_circle_contour_xld( : ContCircle : Row, Column, Radius, StartPhi, EndPhi, PointOrder, Resolut
阅读全文
摘要:
变换 平滑轮廓:smooth_contours 算子:smooth_contours_xld(Contours : SmoothedContours : NumRegrPoints : ) 示例:smooth_contours_xld (Border, SmoothedContours, 11) B
阅读全文
变换 平滑轮廓:smooth_contours 算子:smooth_contours_xld(Contours : SmoothedContours : NumRegrPoints : ) 示例:smooth_contours_xld (Border, SmoothedContours, 11) B
阅读全文
摘要:
8.1获取轨迹的图像数据 获取轮廓坐标 get_contour_xld 算子:get_contour_xld(Contour : : : Row, Col) 示例:get_contour_xld (Contours4, Row26, Col) Contours4(输入对象):输入轮廓对象 Row26
阅读全文
8.1获取轨迹的图像数据 获取轮廓坐标 get_contour_xld 算子:get_contour_xld(Contour : : : Row, Col) 示例:get_contour_xld (Contours4, Row26, Col) Contours4(输入对象):输入轮廓对象 Row26
阅读全文
摘要:
是什么是模板匹配? 模板就是一副已知的小图像,而模板匹配就是在一副大图像中搜寻目标,已知该图中有要找的目标,且该目标同模板有相同的尺寸、方向和图像元素,通过一定的算法可以在图中找到目标,确定其坐标位置 模板匹配的参数介绍: 1. 图像金字塔:Numberlever 2. 起始角度:AngleStar
阅读全文
是什么是模板匹配? 模板就是一副已知的小图像,而模板匹配就是在一副大图像中搜寻目标,已知该图中有要找的目标,且该目标同模板有相同的尺寸、方向和图像元素,通过一定的算法可以在图中找到目标,确定其坐标位置 模板匹配的参数介绍: 1. 图像金字塔:Numberlever 2. 起始角度:AngleStar
阅读全文
摘要:
a) 什么是C#? C#是由C和C++衍生出来的一种安全的、稳定的、简单的面向对象编程语言 b) 它有什么用? 可以快速稳定的控制调动硬件 c) 为什么要学习C#? 视觉检测,运动控制,调用硬件需要用到c# 并且halcon与c#联合可以快速部署稳定功能强大的检测程序 1.2 Visual Stud
阅读全文
a) 什么是C#? C#是由C和C++衍生出来的一种安全的、稳定的、简单的面向对象编程语言 b) 它有什么用? 可以快速稳定的控制调动硬件 c) 为什么要学习C#? 视觉检测,运动控制,调用硬件需要用到c# 并且halcon与c#联合可以快速部署稳定功能强大的检测程序 1.2 Visual Stud
阅读全文
摘要:
1. C# 命名空间 a) 类名是不能重名的。 b) 但类是面向对象语言的基本单位。数量会上万,为了像变量的作用域一样将类分隔开,需要使用命名空间。 c) 命名空间类似于文件夹,不同文件夹下的文件可以同名,同理不同命名空间下的类也可以同名。并且命名空间的作用域不像语句块,不会延申到子命名空间。 d)
阅读全文
1. C# 命名空间 a) 类名是不能重名的。 b) 但类是面向对象语言的基本单位。数量会上万,为了像变量的作用域一样将类分隔开,需要使用命名空间。 c) 命名空间类似于文件夹,不同文件夹下的文件可以同名,同理不同命名空间下的类也可以同名。并且命名空间的作用域不像语句块,不会延申到子命名空间。 d)
阅读全文
摘要:
2. 命名规范 通常来讲,名称是以意思相近的英文描述而命名的;例如:一个打开连接的方法 => open connection => OpenConnection(); 到达 看其名,知其意 的效果;提高代码的可读性和理解性。 1) Pascal (大驼峰)命名方式 命名空间、类、接口、抽象类、结构体
阅读全文
2. 命名规范 通常来讲,名称是以意思相近的英文描述而命名的;例如:一个打开连接的方法 => open connection => OpenConnection(); 到达 看其名,知其意 的效果;提高代码的可读性和理解性。 1) Pascal (大驼峰)命名方式 命名空间、类、接口、抽象类、结构体
阅读全文
摘要:
1. 变量的基本概念 一个变量只不过是提供程序操作的存储区的名字,在C#中每个变量都有一个特定的类型,类型决定了变量的大小和布局,范围内的值可以存储在内存中,可以对变量进行一系列的操作 2. 变量的声明及赋值 a) 声明变量 b) 变量的赋值 c) 变量的作用域(方法中) C#五个修饰符的权限 修饰
阅读全文
1. 变量的基本概念 一个变量只不过是提供程序操作的存储区的名字,在C#中每个变量都有一个特定的类型,类型决定了变量的大小和布局,范围内的值可以存储在内存中,可以对变量进行一系列的操作 2. 变量的声明及赋值 a) 声明变量 b) 变量的赋值 c) 变量的作用域(方法中) C#五个修饰符的权限 修饰
阅读全文
摘要:
3.1 表达式 1.赋值表达式 由赋值运算符(=)连接起来的式子叫做赋值表达式,例如:a=a+1。变量可以重新赋值,老值不复存在。 小扩展:有一种复合赋值运算符,例如: Int num=10; num=num+10; 可以写成: Int num=10; num+=10; 2.算术表达式 由算术运算符
阅读全文
3.1 表达式 1.赋值表达式 由赋值运算符(=)连接起来的式子叫做赋值表达式,例如:a=a+1。变量可以重新赋值,老值不复存在。 小扩展:有一种复合赋值运算符,例如: Int num=10; num=num+10; 可以写成: Int num=10; num+=10; 2.算术表达式 由算术运算符
阅读全文
摘要:
4.1 字符类Char 的使用 1. Char 类概述 C#中的char数据类型:代表单个字符 • char类型,BLC名称System.Char。 • 取值范围对应Unicode字符集 • 占两个字节 2. Char 类的使用 tostring 将此实例的值转换为其等效的字符串表示 char类型可
阅读全文
4.1 字符类Char 的使用 1. Char 类概述 C#中的char数据类型:代表单个字符 • char类型,BLC名称System.Char。 • 取值范围对应Unicode字符集 • 占两个字节 2. Char 类的使用 tostring 将此实例的值转换为其等效的字符串表示 char类型可
阅读全文
摘要:
1. if 语句 for (int i = 0; i < 10; i++) { if (i == 5) { continue; } else if (i == 8) { MessageBox.Show("今天是晴天"); break; } MessageBox.Show("i=:" + i.ToSt
阅读全文
1. if 语句 for (int i = 0; i < 10; i++) { if (i == 5) { continue; } else if (i == 8) { MessageBox.Show("今天是晴天"); break; } MessageBox.Show("i=:" + i.ToSt
阅读全文
摘要:
1.1 数组概述 数组从字面上理解就是存放一组数,但在 C# 语言中数组存放的并不一定是数字,也可以是 其他数据类型。 数组的特点: 1.在一个数组中存放的值都是同一数据类型的。 2.数组中某个指定的元素是通过索引来访问的。 3.所有的数组都是由连续的内存位置组成的。 4.数组从零开始建立索引,即数
阅读全文
1.1 数组概述 数组从字面上理解就是存放一组数,但在 C# 语言中数组存放的并不一定是数字,也可以是 其他数据类型。 数组的特点: 1.在一个数组中存放的值都是同一数据类型的。 2.数组中某个指定的元素是通过索引来访问的。 3.所有的数组都是由连续的内存位置组成的。 4.数组从零开始建立索引,即数
阅读全文
摘要:
1. 属性 属性的概述 属性是提供对对象或类的特性进行访问的成员。属性提供功能强大的方法将声明信息与C#代码(类型,方法,属性等)相关联。属性的设置包括字符串的长度,字体的大小,窗口的焦点,用户的名字等。 使程序员可以创造新的声明信息的种类,称为属性。属性是对现实世界中实体特征的抽象,是为访问自定义
阅读全文
1. 属性 属性的概述 属性是提供对对象或类的特性进行访问的成员。属性提供功能强大的方法将声明信息与C#代码(类型,方法,属性等)相关联。属性的设置包括字符串的长度,字体的大小,窗口的焦点,用户的名字等。 使程序员可以创造新的声明信息的种类,称为属性。属性是对现实世界中实体特征的抽象,是为访问自定义
阅读全文
摘要:
8.1 结构 1. 结构概述 在 C# 中,结构体是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构体 2. 结构的使用 3. 一般来说结构体的定义要放在class的外面或class的里面,尽量不放在Main的里面。 struct 自定义类型名 {
阅读全文
8.1 结构 1. 结构概述 在 C# 中,结构体是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构体 2. 结构的使用 3. 一般来说结构体的定义要放在class的外面或class的里面,尽量不放在Main的里面。 struct 自定义类型名 {
阅读全文

1.用 halcon 的采集助手抓图
浙公网安备 33010602011771号