halcon学习笔记

API:erision_circle()
opening_clrcle()
腐蚀命令对原图像信息的丢失比open命令更为严重

select_shape()

dev_close_window()
dev_open_window()
需要在窗口显示信息前需要进行这两部操作,获取窗口ID

图片处理一般流程
采集》预处理(去噪声)》特征处理

API:decompose3
将一张图装换成三个色域的图
Convert a three-channel image into three images.

API:trans_frim_rgb
Transform an image from the RGB color space to an arbitrary color space.
可用于某个区域的特征提取

当干扰区域比较多时
API:connection 断开连通域
API:select_shape 选择特征直方图,选出目标领域

例子1
车牌识别过程

  • 图片二值化处理:
    通道转换:decompose3,tran_from_rgb
    使用灰度直方图,突出车牌信息特征
  • 特征提取
    去除多余噪声:形态学,opening,erssion,
    断开连通域:connection
    使用特征直方图选择车牌信息
  • 调整特征位置
    填充fill_up
    获取方向信息:orinentation
    将图片信息摆正
    将特征信息摆正
  • 对车牌信息进行处理
    二值化-形态学-连通域
    特征识别:sort_region(character)
    文字识别:read_orc_class_mlp

图像基础

  • 图像灰度变化(scale_image)
  • 图像增强(emphasize)
  • 图像几何变化(仿射变化,极坐标变换)
  • 图像分割(blob分析、边缘检测,reduce_domain)
  • 图像频域(fft_image)
  • 图像形态学(opening)腐蚀膨胀
  • 图像复原
  • 运动图像
  • 图像配准(模板匹配)
  • RGB》》》HSV(亮度、射度、饱和度)

颜色识别

图片获取:
颜色分类:Regions :=[‘黄’,‘红’,‘绿’,‘橙’]
建立空目标:gen_empty_obj (EmptyObject)

循环框选颜色区域:

for i := 1 to |Regions|+1 by 1
    dev_display (Color)
    dev_display (EmptyObject)
    disp_message (WindowHandle, '请指定区域:', 'window', 12, 12, 'black', 'true')
    draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
    gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
    concat_obj (Rectangle, EmptyObject, EmptyObject)
endfor

深度学习部分:
创建分类:create_class_()
加入:add_samples_image_class_()
显示提示:disp_message

训练模型:train_class_mlp

结果显示:

while(true)
    read_image (Color, 'E:/YZW/image/color.jpg')
    classify_image_class_mlp (Color, ClassRegions, MLPHandle, 0.5)
    for Index := 1 to 5 by 1
        dev_clear_window ()
        copy_obj (ClassRegions, ObjectsSelected, Index, 1)
        disp_message (WindowHandle, Regions[Index-1], 'window', 10, 10, 'black', 'true')
        dev_display (ObjectsSelected)
        stop ()
    endfor
endwhile

你可能感兴趣的:(halcon)