视觉
文布斯
《勤读》
书从疑处翻成悟,
文到穷时自有神。
读书心细丝抽茧,
练句功深石铺天。
展开
-
【Halcon视觉】标定
1.前言标定,是机器视觉系统的准备工作。2.原理在机器视觉系统中存在三个坐标系:(1)机器人坐标系(2)相机坐标系(3)世界坐标系标定的意义,就是将机器人坐标系和相机坐标系建立联系。通过九点标定的方式,可将这种联系量化成数学表达式。3.代码*读图read_image (Image, 'C:/Users/Administrator/Desktop/九点标定板.bmp')*彩色图转灰度图rgb1...原创 2022-04-08 18:09:41 · 1521 阅读 · 0 评论 -
【Halcon视觉】定位
1.前言 Halcon中的边缘提取,可拟合直线。通过两条直线的交点,可实现工件定位。2.效果3.代码*关窗dev_close_window ()*开窗dev_open_window (0, 0, 512, 512, 'black', WindowHandle)*清理窗口dev_clear_window ()*读取图片read_image (Image, 'C:/Users/Administrator/Desktop/图片/电池1.jpg')*灰...原创 2022-03-25 14:25:13 · 3617 阅读 · 0 评论 -
【Halcon视觉】车牌识别
1.前言 Halcon可识别字符,因此可识别车牌。2.代码*读取图片read_image (Image, 'C:/Users/Administrator/Desktop/图片/车牌.jpg')*画矩形draw_rectangle1 (3600, Row1, Column1, Row2, Column2)*生成矩形gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)*裁剪矩形区域reduce_domai...原创 2022-03-11 20:25:20 · 7103 阅读 · 0 评论 -
【Halcon视觉】C#与Halcon联合应用2
1.前言 Halcon功能,展示在桌面上,可应用于工业软件。2.代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using HalconDotNet;nam...原创 2022-03-04 23:29:05 · 872 阅读 · 0 评论 -
【Halcon视觉】C#与Halcon联合应用1
前言:Halcon视觉,一般与C#联合编程,才可将具体的功能应用到Windows桌面APP上。案例:将读取图片的功能,用桌面APP实现。 代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.T...原创 2022-02-28 00:55:06 · 2657 阅读 · 0 评论 -
【Halcon视觉】读取图片
Halcon,读取图片,读取文件夹中的图片。*读取图片read_image (Image, 'printer_chip/printer_chip_01')*获取图片大小get_image_size (Image, Width, Height)*读取文件夹list_files ('C:/Users/Public/Documents/MVTec/HALCON-18.11-Progress/examples/images/coins', 'files', Files)*遍历文件夹中的图片f.原创 2021-04-06 00:37:19 · 338 阅读 · 0 评论 -
【Halcon视觉】快捷键
Ctrl+E 打开例程Ctrl+F 查找F1 查看帮助F2 重置程序F3 取消程序注释F4 程序注释F5 程序运行F6 程序单步运行F7 单步跳入函数F8 单步跳出函数---------- 完 ----------...原创 2021-04-11 00:10:09 · 316 阅读 · 0 评论 -
【C#语言】泛型接口
泛型接口,允许我们编写,参数和接口成员返回类型是泛型类型的接口。using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 泛型接口{ //定义泛型接口,接口名称后面放置“类型参数” interface IMy_interface<T> { //接口成员,run方法,该方法不能具体实现,用分号代替方法主体。原创 2021-03-14 21:49:08 · 249 阅读 · 0 评论 -
【Halcon视觉】软件编程思路
视觉软件编程总体思路图像预处理:图像去噪,图像增强等。 图像感兴趣区域分割:阈值分割,聚类分割等,将感兴趣区域分割出来。 图像区域筛选:在分割的区域图像中,根据特征,筛选出我们需要的区域。这些特征包括长度,宽度,方形,圆形,凸性等。 特征分析:在筛选出来的区域图像中,对它进行定量分析,包括外接圆,区域大小等。 目标信息提取:获取目标信息,如长度,坐标等。*获取铝片区域案例*读图read_image (Image, 'printer_chip/printer_chip_0..原创 2021-04-28 23:31:08 · 716 阅读 · 0 评论 -
【Halcon视觉】编程逻辑
Halcon编程中,主要有三种逻辑。(1)顺序结构:从上到下,单步运行。(2)选择结构:if...endif...(3)循环结构:for...endfor... while...endwhile...*编程逻辑a:=2b:=6c:=8d:=0*选择逻辑if ((a<b or a<c) and a>0 ) d:=a endif*循环逻辑My_MaxVal:=0k:=[a,b,c,d]for Index ...原创 2021-04-28 00:37:21 · 582 阅读 · 0 评论 -
【Halcon视觉】选择读取图片
动态选择读取图片。*打开图片文件选项卡dev_open_file_dialog ('read_image', 'default', 'default', Selection)*读取选择的图片read_image (Image, Selection)---------- 完 ----------...原创 2021-04-10 23:33:01 · 230 阅读 · 0 评论 -
【Halcon视觉】极坐标变换
极坐标变换,是将图像在直角坐标系与极坐标系中,相互转换。常用于圆形图像的处理,如:圆形图案边缘上的文字,经过极坐标变换后,可以垂直的排列在新图像的边缘,便于对文字的识别和检测。polar_trans_image_ext() 极坐标变换polar_trans_image_inv() 极坐标逆变换...原创 2021-07-19 23:38:16 · 1181 阅读 · 2 评论 -
【Halcon视觉】图像滤波
图像滤波的意义:除去图像中的噪声。噪声一般由外界干扰产生。均值滤波 mean_image() 中值滤波 median_image() 高斯滤波 gauss_filter() 导向滤波 guided_filter()原创 2021-07-08 18:47:39 · 410 阅读 · 0 评论 -
【Halcon视觉】图像灰度变化
图像灰度变换的目的,是为了提高图像的对比度,对比度越高,清晰度越高。1.灰度线性变换add_image() 图像相加invert_image() 图像取反2.灰度非线性变换log_image() 对数函数exp_image() 指数函数3.灰度直方图变换图像均衡化。dev_close_window ()dev_open_window (0, 0, 512, 512, 'black', WindowHandle)...原创 2021-07-07 04:02:27 · 1126 阅读 · 0 评论 -
【Halcon视觉】仿射变换
在图像处理中,经常需要缩放,平移,旋转,反射,错切。这就是仿射变换。 仿射变换,是两种简单变换的叠加。一个是线性变换,一个是平移变换。 仿射变换的性质:凸性 共线性:若几个点变换前在一条直线上,仿射变换后仍然在一条直线上。 平行性:若两条线变换前平行,那变换后仍然平行。 共线比例不变性:在一条线上,两线段的比例,仿射变换后保持不变。...原创 2021-07-15 20:35:28 · 1272 阅读 · 1 评论 -
【Halcon视觉】图像的通道转换
图像的通道:描述图像颜色层数的名称,比如彩色图像有R(红),G(绿),B(蓝)三个颜色,就称为图像具有三个通道,分别是R,G,B三通道。比如灰度图像只有一个通道,称为单通道图。*读取图像read_image (Image, 'C:/Users/Allegro/Desktop/图片/风景3.jpg')*通道分离decompose3 (Image, R, G, B)*转为灰度图像rgb1_to_gray (Image, GrayImage)*H色相。S饱和度。V明亮度。trans.原创 2021-04-14 22:55:16 · 1010 阅读 · 0 评论 -
【Halcon视觉】算子的结构
Halcon中的算子将近两千个。我们可进行分类。1.根据算子的英文名称分类含draw,表示界面互动的算子,需要人去画区域。含gen,表示生成类算子,比如生成圆,生成矩形等。含get,表示获取某些属性的算子。含tuple,表示与数组有关的算子。含select,表示与筛选有关的算子。含contour,表示与轮廓有关的算子。含gray,表示与灰度有关的算子。含dev,表示与操作窗口有关的算子。2.根据算子的参数进行分类参数运算类,参数一般是数组等。对象运算类,对象一原创 2021-04-15 00:07:49 · 806 阅读 · 0 评论 -
【Halcon视觉】扫码
1.前言 在工业领域,时常需要使用条形码或者二维码,来给产品做标识。所以,视觉系统需要扫码功能。2.算子create_bar_code_model ()创建条码模型find_bar_code ()识别条码create_data_code_2d_model ()创建二维码模型find_data_code_2d ()识别二维码3.代码*读取图像read_image (Image, 'C:/U...原创 2021-12-15 22:04:24 · 2733 阅读 · 0 评论 -
【Halcon视觉】图像的傅里叶变换
傅里叶变换的定义:傅里叶变换是时域到频域的变换方法。通俗的讲,是将图像现在的空间,变换到能够反映某些事物出现的频率的空间。傅里叶变换的用途:一般对出现频率高的像素点的分析,以及噪声的去除。频率图的特点:图像中心是频率为0的原点,由内到外频率越来越高。*读图read_image (Image, 'printer_chip/printer_chip_01')*傅里叶变换fft_image (Image, ImageFFT)*区域...原创 2021-07-26 02:04:40 · 1817 阅读 · 0 评论 -
【Halcon视觉】图像滤波
图像滤波的目的是去噪。一.均值滤波均值滤波是指,任意一点的像素值,都是周围N*M个点的像素值的平均值。二.中值滤波在使用领域平均值,实现去噪时,边缘也会变得模糊,因此有了中值滤波,任意一点的周围,N*M个点,将这些点的像素值,按照从大到小的顺序排列,取中位数,作为目标点的像素值。三.高斯滤波图像上任意一点,对周围N*M个点,进行加权计算。距离目标点较近的点,权重更大,距离目标点较远的点,权重更小。所有点...原创 2021-08-06 18:47:03 · 930 阅读 · 0 评论 -
【Halcon视觉】阈值分割
灰度图像,仅由一种颜色(灰色)组成。只不过每个像素的灰阶不同,即0~255。当灰阶为0时,显示为黑色,当灰阶为255时,显示为白色。阈值分割的两种常用方式:1.静态阈值分割:设定两个灰度值,使特征区域分离出来。threshold() 阈值分割 2.二值化阈值分割:设定一个灰度值,大于该灰度值的区域为白,小于该灰度值的区域为黑。binary_threshold(...原创 2021-08-13 01:03:45 · 1240 阅读 · 0 评论 -
【Halcon视觉】亚像素轮廓特征
亚像素轮廓,简称:XLD XLD 特征分析的意义:在获取众多亚像素轮廓后,需要依据特征进行筛选。 例如,下图中提取出多个轮廓,需去除干扰轮廓,筛选出长方形轮廓。 常用的亚像素轮廓特征如下: 1.亚像素轮廓的长度:轮廓所占有的像素个数。 2.亚像素轮廓的最小外接矩形:包含整个轮廓的外接矩形。 3.亚像素轮廓的最小外接圆:包含整个轮廓的外接圆。 4.亚像素轮廓的方向...原创 2021-08-27 16:32:25 · 1846 阅读 · 0 评论 -
【Halcon视觉】图像亚像素边缘提取
亚像素:原先的像素单位为1,变为比1小的精度。亚像素比像素精度更高。 亚像素边缘提取原理:采用插值算法,精确定位边缘的位置。 Halcon提供了亚像素边缘提取方法,可直接获取高精度的亚像素边缘。 算子:edges_sub_pix () 亚像素边缘*关闭窗口dev_close_window ()*打开窗口dev_open_window (0, 0, 512, 512, 'black', WindowHandle)...原创 2021-08-25 19:09:28 · 3872 阅读 · 4 评论 -
【Halcon视觉】形态学开闭运算
形态学开运算:对区域先进行腐蚀操作,然后对腐蚀的结果,再进行膨胀操作,称为开运算。开运算的特点:具有与腐蚀相似的特点,但是能够防止区域腐蚀过度,能够良好的保持区域的形状。opening_circle () 圆形开运算opening_rectangle () 矩形开运算形态学闭运算:对区域进行膨胀操作,然后对膨胀的结果,再进行腐蚀操作,称为闭运算。闭运算的特点:具有与膨胀相似的特点,但...原创 2021-08-17 20:23:04 · 2585 阅读 · 0 评论 -
【Halcon视觉】形态学膨胀
形态学膨胀:通过结构元素,与目标图像运算,使图像中的空洞,和凹凸不平的边缘,产生膨胀的效果。膨胀分类:根据结构元的形状,分为圆形膨胀和矩形膨胀等。dilation_cicle() 圆形膨胀dilation_rectanglel() 矩形膨胀*读图read_image (Image, 'printer_chip/printer_chip_01')*阈值化threshold (Image, Region, 128...原创 2021-08-13 21:47:28 · 720 阅读 · 0 评论 -
【Halcon视觉】形态学腐蚀
形态学腐蚀:对于图像中突出部分,边缘毛刺部分,进行腐蚀,可呈现良好的平滑效果。腐蚀分类:根据结构元的形状,可分为圆形腐蚀,和矩形腐蚀。erosion_circle () 圆形腐蚀erosion_rectangle () 矩形腐蚀*读取图像read_image (Image, 'printer_chip/printer_chip_01')*阈值分割threshold (Image, Region, 15...原创 2021-08-15 21:15:31 · 815 阅读 · 0 评论 -
【Halcon视觉】中心线提取
定义:区域中心的线称为中心线。有些情况下需要求取中心线,比如道路中心。 算子:Lines_gauss () 中心线*读取图像read_image (Image, 'C:/Users/Public/Documents/MVTec/HALCON-18.11-Progress/examples/images/pcb_rotation/pcb_rotated_01.png')*灰度化rgb1_to_gray (Image, GrayImage)*高斯算法...原创 2021-08-31 16:00:18 · 3147 阅读 · 0 评论 -
【Halcon视觉】区域运算
区域的概念:在图像中,选择特定的面积,称为“区域”。 区域做差:将一个区域减去另一个区域,得到区域的差值。 difference () 区域做差 区域合并:将一个区域与另一个区域求和,便可将两个区域合并为一个区域。 union () 区域合并 区域集合:将两个或者两个以上的区域,放入一个集合中,这个集合称为“区域的集合”。每一个区域都是孤立存在的个体obj。 con...原创 2021-08-19 15:24:49 · 4002 阅读 · 0 评论 -
【Halcon视觉】图像特征分析
图像,可划分为多个区域。依据则是区域的特征。因此需要分析图像特征。 常用的图像特征:区域的面积,区域的角度,区域的圆度,区域的最小外接矩形,区域的最小外接圆,区域的凸性,等等。 1.区域的面积:区域像素点的总和,称为区域的面积。 算子:area_center () 区域面积2. 区域的最小外接矩形:最小外接矩形的长宽的一半,称为长宽半轴。矩形的长轴方向,称为区域的方向。 算子:smalles...原创 2021-08-22 03:10:07 · 2078 阅读 · 0 评论 -
【Halcon视觉】OCR字符识别
目录引言 算子 素材 效果 代码 结语引言 在生活和生产中,很多场景都需要识别数字,字母,汉字等。因此,Halcon添加了OCR字符识别功能。算子read_ocr_class_mlp()读取OCR字符识别分类器do_ocr_multi_class_mlp()使用OCR字符识别分类器素材效果代码*关闭窗口dev_close_window ()*打开窗口...原创 2021-10-31 19:08:21 · 6769 阅读 · 1 评论 -
【Halcon视觉】图像边缘提取
边缘的定义:边缘是图像中灰度值变化强烈的地方,是不同区域之间的界限。 边缘的矩阵形式: 边缘提取:采用掩模的方式,在图像矩阵上进行移动,使用掩模内的掩模值进行运算,以此实现边缘提取。 举例:3*3 掩模图像灰度区域 :算法 :-1*1+0*1+1*10+(-1)*1+0*1+1*10+(-1)*1+0*1+1*10=27 当算法计算所得值大于20,灰度变化强烈,可提取...原创 2021-08-24 19:30:18 · 1487 阅读 · 0 评论 -
【Halcon视觉】图像分类
前言 在工业应用中,需要对产品进行分类。比如:制药公司,生产的药丸,需分类包装。因此,机器视觉工程师研发出了分类器,以满足工业发展的需要。 图像分类原理: 根据不同的特征,如颜色,寻找合适的分界规律,该规律适应于大部分的图像数据。例如:直线y=ax+b,将图像中的像素分成两类。 算子:create_class_svm()创建分类器add_samples_image_cl...原创 2021-09-29 18:36:51 · 1136 阅读 · 0 评论 -
【Halcon视觉】图像拟合圆
在半导体行业,如PCB集成电路板,提供了Mark点,辅助视觉定位。而Mark点一般为圆形。视觉系统,需要抓取圆,进行精准定位。算子: fit_circle_contour_xld () 拟合圆 gen_circle () 生成圆*关闭窗口dev_close_window ()*打开窗口dev_open_window (0, 0, 512, 512, 'black', WindowHandle)*读取图...原创 2021-08-30 17:23:51 · 1866 阅读 · 0 评论 -
【Halcon视觉】数组
Halcon中的数组,与C语言类似。(1)变量类型:int,double,string等类型。(2)变量长度:如果长度为1,则可以作为正常变量使用,第一个索引值为0,最大的索引值为变量长度减1。(3)赋值符号:一个冒号加一个等号 “ := ” 。*1.数组定义和赋值*定义空数组Tuple:=[]*指定数据定义数组Tuple1:=[1,2,3,4,5,6,7,8]Tuple2:=['A','B','C','D']*通过数组下标更改指定位置的元素值。...原创 2021-04-21 22:58:15 · 3399 阅读 · 0 评论 -
【Halcon视觉】图像拟合直线
XLD分割:在获取亚像素轮廓后,需要将轮廓进行分割,各个线条的折点,一般为分割点。 算子:segment_contours_xld () 轮廓分割 XLD的拟合:根据线条的预先模型,对线条进行重新生成。 算子:fit_line_contour_xld () 拟合直线 XLD的拟合原理:最小二乘法拟合,权重拟合。*关闭窗口dev_close_window ()*打开窗口dev_op...原创 2021-08-29 17:07:12 · 9880 阅读 · 0 评论 -
【Halcon视觉】XLD模板匹配
原理: XLD是亚像素轮廓,XLD轮廓模板匹配,是直接利用灰度变化明显的地方,进行XLD轮廓提取,生成XLD轮廓模板,然后使用该模板,在目标图像中进行搜索匹配。 算子:create_shape_model_xld()创建XLD亚像素轮廓模板find_shape_model() 搜索模板*关闭窗口dev_close_window ()*打开窗口dev_open_window (0, 0, 51...原创 2021-09-27 02:28:15 · 3603 阅读 · 2 评论 -
【Halcon视觉】形状模板匹配
在图片中,有些图像区域的形状特征比较明显。因此,可采用形状模板匹配的思路。 在原始图像中,选择具有特殊形状的区域,生成模板。在目标图像中,搜索与模板相似的区域,找到目标,即可确定坐标位置。 算子:create_shape_model () 创建形状特征模板find_shape_model () 搜索形状特征模板*关闭窗口dev_close_window ()*打开窗口dev_open...原创 2021-09-25 01:09:54 · 2205 阅读 · 0 评论 -
【Halcon视觉】图像测量
机器视觉的测量原理 基于机器视觉的检测过程:对感兴趣的对象或区域进行成像,然后结合其图像信息,利用图像处理软件进行处理,根据处理结果自动判断检测对象的位置,尺寸,外观信息,并依据人为预先设定的标准进行合格与否的判断,最后输出其判断信息给执行机构。机器视觉检测系统采用CCD相机或CMOS相机将被检测的对象信息转换成图像信号,传送给专用的图像处理软件,图像处理软件根据像素分布,亮度,颜色等信息,将图像信号,转变成数字化信号,并对这些信号进行各种运算,来抽取对象的特征,如面积,数...原创 2021-09-16 21:04:12 · 2038 阅读 · 2 评论 -
【Halcon视觉】NCC模板匹配
图像匹配是通过对图像内容,特征,结构,纹理,灰度等的对应关系,进行相似性和一致性的分析,寻求相似图像目标的方法。 机器视觉的图像匹配,通常先确定目标,在某张样图中选择目标作为模板,然后在待匹配的图像中分析,是否有模板相似区,如果有,则进一步确定位姿,因此也被称作模板匹配。 图像像素的灰度值信息,包含了图像记录的所有信息。基于图案像素灰度值的匹配,是最基本的匹配算法。通常直接利用整幅图像的灰度信息,建立两幅图像之间的相似性度量,然后采用搜索算法寻找相似性度量...原创 2021-09-20 19:17:38 · 4567 阅读 · 2 评论