超人视觉启蒙班一些零散笔记

halcon理论之-分类识别

例程:
关于hsv的看超人视觉启蒙班一些零散笔记
基于分类训练的是
超人视觉启蒙班一些零散笔记

分类器是特征向量? 这里的特征向量是指,如ABC三个字母,按纹理分,ABC特征都不同,按周长分,ABC特征也不同,把纹理和周长加起来就是ABC的特征集合,即是特征向量。借此区分字母
特征提取有哪些特征?

特征学习套路(参考超人视觉启蒙班-纹理识别)

1特征提取 (如果是多种特征,要把ABC特征放在一起组成特征向量)
2创建分类器(create_class_mlp)
3添加样本(add_sample_class_mlp)
4训练(train_class_mlp)
5 识别(classify_class_mlp)

halcon理论之特征提取

有哪些特征
几何特征,纹理特征(往往跟灰度有关系,熵啊,能量值啊,要用到共生矩阵) ,颜色特征,概率特征,算子描述特征。htog特征(即是梯度)…很多特征

学模式识别是比图像处理更高级的,学习深度学习

画ROI 创建分类器,添加样本和训练

1、区域特征:

area_center 。area_center_gray。moments。smallest_rectangle1,smallest_rectangle2,。smallest_circle
min_max_gray。compactness, eccentricity, elliptic_axis。intensity
convexity:区域面积与凸包面积的比例。contlength:区域边界的长度。compactness
超人视觉启蒙班一些零散笔记
超人视觉启蒙班一些零散笔记
2、灰度特征
estimate_noise。select_gray
select_shape 自带的特征直方图工具挺好用

halcon理论之-几何定位仿射变换

一:定位,
方法有:
1blob分析,说白了,就是分析像素块,找到大概的区域,如图中需要测量的小方块,然后进行区域填充,然后把它旋转和平移过来,
超人视觉启蒙班一些零散笔记
2模板匹配,做一个有大致轮廓的大模板,然后在图像里面找对应的,每个人找的标记点不一样,有找mark点的,有基于颜色的(颜色的参考:超人视觉玩转车牌识别,定位矫正+识别第一节) 范例里也有颜色识别,
3:深度学习
比如车牌识别,有的做形状定位 ,比如矩形,模板匹配,或基于车牌底色找到大概位置,判定角度,

二:仿射变换
得到点的坐标和角度,再用仿射变换(它是特殊的投影变换,也是常说的几何变换) 只对图像的形状发生变换,变换到标准位置,在进行测量和识别。
仿射变换的常见三种内容:平移,旋转,缩放, 变换(这三个都是矩阵变换过去)。完成后会对halcon的三大数据元素(range区域,图像,XLD)产生影响
一二步说白了就是找到目标物的大概位置是多少,知道他目前的角度偏差,位置偏差是多少,然后用仿射变换整回到固定位置

参考例子几何变换里的包含旋转和缩放,仿射变换的第一种方式-求矩阵的方式-
套路一:设置个单位矩阵a-在单位矩阵基础下变化为旋转/平移/缩放矩阵b-把矩阵b套在变换算子里
hom_mat2d_identity (HomMat2DIdentity)
hom_mat2d_rotate (HomMat2DIdentity, 0, 638, 800, HomMat2DRotate)
affine_trans_region (ROI_0, RegionAffineTrans, HomMat2DRotate, ‘nearest_neighbor’)

案例2,blob分析里的
超人视觉启蒙班一些零散笔记
包含了仿射变换的第二种方式-直接用函数vector_angle_to_rigid(这个函数仅支持平移和旋转,不支持缩放) 算出最终变换矩阵

套路:自动的得到变换矩阵,然后用affine
vector_angle_to_rigid (Row, Column, Angle, RowRef, ColumnRef, 0, HomMat2D)
affine_trans_image (Image, ImageTrans, HomMat2D, ‘constant’, ‘false’)