Halcon视觉框架+车牌识别+汉字识别+颜色识别+20200930

视觉框架

采集
接口: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----图像配准

你可能感兴趣的:(视觉,计算机视觉)