halcon学习_超人启蒙班1-9课

第一课
halcon软件介绍

第二课
讲了数组和文件的两个示例(记住活学活用)

第三课
1、 介绍了usb摄像头,安装驱动、连上usb就可以用了(可在淘宝上买一个,卖家会发驱动)。
2、 文件-读取图像,可以把图像读取出来
3、 可视化-更新窗口-在单步模式- 总是 / 从不 / 清空并显示
总是:下一图像会对上一图像进行覆盖
从不:不会覆盖,需要调用dev_display()函数显示图像
清空并显示:清空前一窗口并显示当前窗口

第四课
1、 读图像文件的4种方式:
①:写代码
②:文件-读取图像
③:采集助手-资源-图像文件-选择文件,然后,插入代码-代码生成
④:采集助手-资源-图像文件-选择路径,然后,插入代码-代码生成(可以读取一个文件夹的多张图片)
2、 采集相机:
采集助手-资源-图像获取接口-自动监测,然后,连接-选择端口-连接+实时,然后,插入代码-代码生成
3、 保存图像:
①:write_image()
②:dump_window和dump_window_image,可以将字和图像一起保存,前一个函数直接保存成图像文件,后一个函数保存成图像变量
4、 blob分析:
实质:找到ROI区域
方法:二值化+形态学+特征选择
5、 区域 ≠ 图像,二值化后得到的是区域,按住crtl显示的只有坐标,没有灰度
6、 灰度直方图是对二值化图像进行调整
7、 先要connection()断开连通域,在进行select_shape()选择所需连通域
8、 步骤:转灰度图→二值化→根据灰度直方图选择连通域→断开connection()→根据特征直方图选择→查看(可清空并显示)

第五课
1、 在联合VC时,一定要dev_display()
2、 dev_close_window()
…\\\dev_open_window()
3、 算子 均值滤波、中值滤波(去椒盐噪声)、高斯滤波
4、 边缘描绘:
①:可视化-画-边缘
②:dev_set_draw(‘margin’)

第六七课 形态学
1、 腐蚀、膨胀、开运算、闭运算:永远和原来的像素进行比较
erosion、dilation、opening、closing _circle/rectangle1、2
腐蚀:如果移动到被区域全部包含,则中心像素保留,否则不保留
膨胀:如果和原来的像素有交集,则增加该中心像素,否则不增加
开运算:先腐蚀,后膨胀(即断开)
闭运算:先膨胀,后腐蚀(即连通)
2、 对二值图像进行腐蚀、膨胀、开运算、闭运算,是对大小做改变
…\\\对灰度图像进行腐蚀、膨胀、开运算、闭运算,是对亮度做改变
3、 对灰度图像的运算:
腐蚀和开运算 → 变暗
膨胀和闭运算 → 变亮
4、 采集 → 预处理 → 形态学处理 → (深度学习) → 显示
预处理:中值滤波、均值滤波、高斯滤波、腐蚀、膨胀、开闭运算、翻转、线性变化
形态学处理:特征提取包括形状、颜色、纹理、概率、描绘算子、harr
5、 单词domain:领域范围
6、
shape_trans( , , rectangle1)
reduce_domain() //可以选择一个区域进行操作
opening_circle( , , 数字)
数字越大,干得越狠;形状决定结果
7、 count_obj() 计算连通域的个数

第八课 实战blob
1、 腐蚀比开运算干得狠
2、 先断开整个连通域,再打开特征直方图选择所需的连通域
3、 area_center()可以获得面积、中心点的行列坐标,然后,用dismessage将所需信息显示出来
4、 记得随时保存程序;记得先关相机,再重置代码(不然容易报错
5、 两个重要的快捷键:
ctrl+e:打开demo
F1:打开帮助窗口,可查看算子
6、 凸性 convex
shape_trans( , , ‘convex’)

第九课 几何定位+仿射变换+测量(1)
1、 定位:
①:blob分析
②:模板匹配
2、 仿射变换是一种特殊的几何变换,包括平移、缩放、旋转。
3、 这里3*3的矩阵就是仿射矩阵。
在这里插入图片描述
在这里插入图片描述
4、 如何利用halcon求仿射矩阵?
①:查看demo-方法-几何变换-affine_trans_region

hom_mat2d_identity (HomMat2DIdentity)  //得到单位矩阵
hom_mat2d_rotate (HomMat2DIdentity, -0.3, 256, 256, HomMat2DRotate)  //-0.3表示顺时针选择0.3个弧度,得到旋转矩阵HomMat2DRotate
hom_mat2d_scale (HomMat2DRotate, 1.5, 1.5, 256, 256, HomMat2DScale)  //x,y方向放大倍,得到缩放后的矩阵HomMat2DScale
affine_trans_region (Region, RegionAffineTrans, HomMat2DScale, 'nearest_neighbor')  //对Region进行仿射,得到RegionAffineTrans

②:查看demo-方法-blob-check_blister

access_channel (ImageOrig, Image1, 1)  
threshold (Image1, Region, 90, 255)
shape_trans (Region, Blister, 'convex')
orientation_region (Blister, Phi)  //求区域的角度,phi的值现在是-0.007
area_center (Blister, Area1, Row, Column)  //得到面积和中心位置
vector_angle_to_rigid (Row, Column, Phi, Row, Column, 0, HomMat2D)  //得到仿射矩阵HomMat2D
affine_trans_image (ImageOrig, Image2, HomMat2D, 'constant', 'false')  //对ImageOrig进行仿射变换

ps:主要就是vector_angle_to_rigid()和affine_trans_image()函数
5、 单词
affine:仿射的
rigid:严格的,死板的
3d-rigid transforms:3D刚性(严格)变换

第九课 几何定位+仿射变换+测量(2)
**1、**读取视频文件:
采集助手-资源-图像获取接口-选择DirectFile,然后,连接-媒体文件-选择(文件)–颜色空间(rgb或gray)-连接+实时,然后,插入代码-代码生成
**2、**读取PC上的摄像头:
采集助手-资源-图像获取接口-选择DirectShow,然后,连接-连接+实时,然后,插入代码-代码生成
**3、**打开测量助手-绘制线段(或圆弧)
输入-边缘-图像源-图像窗口
边缘-改变ROI宽-可以勾选将边缘组成边缘对-勾选显示区域
插入代码-代码生成
**4、**demo1:(旋转后用测量助手测量)
在这里插入图片描述在这里插入图片描述

* Image Acquisition 01: Code generated by Image Acquisition 01
read_image (Image, 'C:/Users/yuan/Desktop/1.png')
rgb1_to_gray (Image, GrayImage)
threshold (GrayImage, Regions, 191, 239)
opening_rectangle1 (Regions, RegionOpening, 10, 10)
fill_up (RegionOpening, RegionFillUp)
orientation_region (RegionFillUp, Phi)
area_center (RegionFillUp, Area, Row, Column)
vector_angle_to_rigid (Row, Column, Phi, Row, Column, 0, HomMat2D)
affine_trans_image (GrayImage, ImageAffineTrans, HomMat2D, 'constant', 'false')
//再使用测量助手测量长度,然后插入代码,代码很长,没复制过来

5、 OCR项目都要将识别的内容进行拉直,text_line_orientation()
6、 识别车牌可以将用形状特征、颜色特征和模板匹配
7、 demo2:(使用OCR助手快速识别)
打开OCR助手 → 画一个矩形框(右键结束) → 输入文本 → 勾选 → 应用快速设置
在这里插入图片描述
8、 demo2-blob方法:
步骤:
读图片 → 转灰度 → 利用阈值选区域 → (开运算) → 断开连通域 → 利用特征选区域 → 字母分类 → 读OCR分类的mlp模型 → 运行OCR分类的mlp模型
主要函数:
read_ocr_class_mlp()
do_ocr_multi_class_mlp()
ps:利用阈值分不开的区域可以先断开连通域,可以利用特征直方图选择所需要的的区域,在使用union1()将区域联合起来

read_image (Image4, 'C:/Users/yuan/Desktop/4.png')
rgb1_to_gray (Image4, GrayImage)
invert_image (GrayImage, ImageInvert)
threshold (GrayImage, Regions, 169, 255)
opening_rectangle1 (Regions, RegionOpening, 2, 2)
connection (RegionOpening, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, ['height','width','row1'], 'and', [55.093,0,113.51], [100,53.47,1000])
sort_region (SelectedRegions, SortedRegions, 'character', 'true', 'column')
read_ocr_class_mlp ('Industrial_0-9A-Z_NoRej.omc', OCRHandle)
do_ocr_multi_class_mlp (SortedRegions, ImageInvert, OCRHandle, Class, Confidence)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值