视觉框架
采集
接口:USB接口、网口接口(要配置ip地址,让相机ip地址和电脑ip地址在一个局域网内)
-------》预处理-------》(去除噪声)
1、中值滤波
2、均值滤波
3、高斯滤波
4、模板(求动态范围)灰度图像的开闭运算(把灰度调亮或者调暗)形状变小:灰度值减小。形状增加:灰度值增加。
-------》特征提取
1、形状特征2、颜色特征3、纹理特征4、概率特征5、描述算子特征6、梯度特征7、角点特征
-------》特征识别
-------》显示
shape_trans(,RegionTrans,‘convex’)
凸性:图像任意两个像素点相连,这个图像都在连线以内。把凹下去的地方填平。
shape_trans(,RegionTrans,‘rectangle1’)
外接矩形
定位
1、blob分析(受光照影响较大)
2、模板匹配(点的坐标和角度,仿射变换是一种特殊的投影变换,几何变换)变换到标准位置进行测量或识别
仿射变换:
1、采集
2、定位、矫正
3、字符分割
4、识别
5、显示
orientation_region (RegionFillUp, Phi)
area_center (RegionFillUp, Area, Row, Column)
vector_angle_to_rigid (Row, Column, Phi, Row, Column, rad(180), HomMat2D)
affine_trans_image (Image, ImageAffineTrans, HomMat2D, ‘constant’, ‘false’)
reduce_domain (ImageAffineTrans, RegionFillUp, ImageReduced)
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
* Image Acquisition 01: Code generated by Image Acquisition 01
*采集图像
read_image (Image, '/home/wll/Pictures/timg (2).jpeg')
dev_close_window ()
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width/2, Height/2, 'black', WindowHandle)
*车牌定位矫正
decompose3 (Image, Red, Green, Blue)
trans_from_rgb (Red, Green, Blue, Hue, Saturation, Intensity, 'hsv')
threshold (Green, Regions, 179, 244)
opening_rectangle1 (Regions, RegionOpening, 2, 1)
connection (RegionOpening, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, ['area','width'], 'and', [0,0.94], [1666.67,118.91])
dev_display (SelectedRegions)
opening_rectangle1 (RegionOpening, RegionOpening1, 2, 1)
dilation_rectangle1 (RegionOpening1, RegionDilation, 2, 2)
connection (RegionOpening1, ConnectedRegions1)
*select_shape (ConnectedRegions1, SelectedRegions1, ['area','rectangularity','circularity'], 'and', [0,0.40283,0.1676], [1591.76,0.4066,0.353])
*union1 (RegionOpening1, RegionUnion)
select_shape (ConnectedRegions1, SelectedRegions1, ['area','rectangularity','circularity'], 'and', [1292.13,0.40356,0.1676], [1928.84,0.41479,0.33989])
dilation_rectangle1 (SelectedRegions1, RegionDilation1, 3, 3)
fill_up (RegionDilation1, RegionFillUp)
orientation_region (RegionFillUp, Phi)
area_center (RegionFillUp, Area, Row, Column)
vector_angle_to_rigid (Row, Column, Phi, Row, Column, rad(180), HomMat2D)
affine_trans_image (Image, ImageAffineTrans, HomMat2D, 'constant', 'false')
reduce_domain (ImageAffineTrans, RegionFillUp, ImageReduced)
*字符分割
rgb1_to_gray (ImageReduced, GrayImage)
invert_image (GrayImage, ImageInvert)
threshold (GrayImage, Regions1, 131, 164)
connection (Regions1, ConnectedRegions2)
select_shape (ConnectedRegions2, SelectedRegions2, 'area', 'and', 111.21, 200)
sort_region (SelectedRegions2, SortedRegions, 'character', 'true', 'row')
*识别
read_ocr_class_mlp ('Industrial_0-9A-Z_NoRej.omc', OCRHandle)
do_ocr_multi_class_mlp (Regions1, ImageInvert, OCRHandle, Class, Confidence)
*显示
smallest_rectangle1 (Regions1, Row1, Column1, Row2, Column2)
count_obj (Regions1, Number)
for i :=1 to Number by 1
disp_message (WindowHandle, Class, 'window', Row, Column, 'black', 'true')
endfor
1、采集图像
预处理:增强对比度(线性变换scale_image,直方图均衡化equ_hise_image,灰度形态学/灰度膨胀or灰度腐蚀/,求动态范围gray_rang_image) or 去噪声(均值滤波mean_image,中值滤波,高斯滤波:去脉冲噪声,椒盐噪声)
2、分割图像
3、训练学习。。。。。trf文件
4、识别
基于灰度的处理对于光照都特别敏感,特别是blob分析
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
* Image Acquisition 01: Code generated by Image Acquisition 01
*读入图像
* Image Acquisition 01: Code generated by Image Acquisition 01
read_image (Image, '/home/wll/Pictures/u=2082021872,177755908&fm=26&gp=0.png')
rgb1_to_gray (Image, GrayImage)
*预处理--灰度变换,
scale_image (GrayImage, ImageScaled, 2, -210)
*字符分割:(1)几何矫正(2)分割,让每个字体形成一个连通域
threshold (ImageScaled, Regions, 248, 255)
connection (Regions, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 275.7, 5000)
union1 (SelectedRegions, RegionUnion)
shape_trans (RegionUnion, RegionTrans, 'rectangle2')
orientation_region (RegionTrans, Phi)
area_center (RegionTrans, Area, Row, Column)
vector_angle_to_rigid (Row, Column, Phi, Row, Column, rad(180), HomMat2D)
affine_trans_region (RegionTrans, RegionAffineTrans, HomMat2D, 'nearest_neighbor')
affine_trans_image (ImageScaled, ImageAffineTrans, HomMat2D, 'constant', 'false')
reduce_domain (ImageAffineTrans, RegionAffineTrans, ImageReduced)
rgb1_to_gray (ImageReduced, GrayImage1)
threshold (GrayImage1, Regions1, 255, 255)
connection (Regions1, ConnectedRegions1)
select_shape (ConnectedRegions1, SelectedRegions1, 'area', 'and', 275.7, 5000)
sort_region (Regions1, SortedRegions, 'first_point', 'true', 'row')
count_obj (Regions1, Number)
for i := 1 to Number by 1
select_obj (SelectedRegions1, ObjectSelected, 1)
endfor
*形成trf文件,字符图像与字符关联
words:=['早','安','你','好']
TrainFile := '/home/wll/Halcon/word.trf'
for i:= 1 to Number by 1
select_obj (SortedRegions, ObjectSelected1, i)
append_ocr_trainf (ObjectSelected1, ImageAffineTrans,words[i-1],TrainFile)
endfor
FontFile:='/home/wll/Halcon/word.omc'
read_ocr_trainf_names (TrainFile, CharacterNames, CharacterCount)
NumHidden:=20
*创建神经网络分类器
create_ocr_class_mlp (10, 30, 'constant', 'default', CharacterNames, 80, 'none', 10, 42, OCRHandle)
*训练分类器
trainf_ocr_class_mlp (OCRHandle, TrainFile, 200, 1, 0.01, Error, ErrorLog)
*保存omc文件
write_ocr_class_mlp (OCRHandle, FontFile)
*清除句柄
clear_ocr_class_mlp (OCRHandle)
*识别文字
read_ocr_class_mlp ('/home/wll/Halcon/word.omc', OCRHandle1)
do_ocr_multi_class_mlp (ObjectSelected1, GrayImage1, OCRHandle1, Class, Confidence)
神经网络
第一层:输入层
第二层:隐式层
第三层:输出层
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
1、采集
2、字符分割
3、训练 /创建分类器/训练分类器omc文件/写
4、识别
///
1、图像处理基础。2、图像灰度变换scale_image。3、图像增强emphasize。4、图像几何变换,仿射变换,极坐标变换。5、图像分割,blob分析、边缘检测、reduce_domain。6、图像的频域(fft_image)。7、图像形态学。8、图像复原。9、运动图像。10、图像配准(模板匹配)
1、HSV
色度 饱和度 亮度
2、RGB
1、将RGB转成HSV空间,重点分析H和S
2、分类器----训练–识别
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
1、采集图像
2、预处理(增加对比度1、scale_image2、emphasize增强3、gray_range_rectangle动态范围4、equ_hist_image直方图均衡化
or 去除噪声1、中值滤波2、均值滤波mean_image3、高斯滤波)
3、图像分割/1、拿手画2、blob分析逼近 ROI区域
1、二值化2、select_shape3、形态学分析+配合+interselection/diffrence/shape_trans
4、特征识别以及计算
5、显示通信
1、图像基础理论:图像在计算机中如何表示,什么是图像,什么是图形,什么是图像文件,什么是位深度,什么是RGB图像,什么是gray灰度图像
2、图像的灰度变换:scale_image
3、图像增强emphasize
4、图像几何变换----仿射变换----投影变换----极坐标变换
5、图像分割----边缘提取----blob分析----对所有感兴趣区域的分析
6、图像频域----划痕检测
7、图像形态学----膨胀腐蚀,开运算,闭运算,击中击不中
8、图像复原
9、运动图像----差分
10、模板匹配----霍尔特征----Hog----图像配准