工控编程吧
标题:
5.5 halcon 实现字符轮廓提取
[打印本页]
作者:
qq263946146
时间:
2019-3-27 16:29
标题:
5.5 halcon 实现字符轮廓提取
当前帖子演示对提取的XLD精度的字符轮廓进行排序功能
(, 下载次数: 1)
上传
点击文件名下载附件
首先调用threshold_sub_pix将图片快速分割,提取亚像素 精度边缘轮廓。
随后就可以调用sort_contours_xld函数进行轮廓的筛选。
可以用算子sort_contours_xld对筛选的结果轮廓对待排序。
具体代码与注释如下:
*当前帖子演示对提取的XLD精度的字符轮廓进行排序功能
dev_close_window ()
dev_update_off ()
read_image (Image, 'letters')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width / 2, Height / 2 + 100, 'black', WindowHandle)
dev_set_part (-100, 0, Height - 1, Width - 1)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_display (Image)
set_line_style (WindowHandle, [])
dev_set_color ('red')
*简单快速的轮廓生成
threshold_sub_pix (Image, Edges, 128)
*进行轮廓 特征的选取,'contour_length'为周长特征,选择轮廓周长在10--200间的轮廓。
*-0.5, 0.5为第二特征范围,在这里无意义。
select_contours_xld (Edges, SelectedContours, 'contour_length', 10, 200, -0.5, 0.5)
* Sort the unsorted output:
* First sort the contours by row coordinates. The position of a
* contour is given by the upper left corner of its surrounding rectangle.
*进行无序轮廓的排序。
*首先按列坐标进行轮廓的排序,轮廓的位置通过字符外接矩形左上角确定。
count_obj (SelectedContours, Number)
dev_set_line_width (3)
* 依据轮廓相对位置,进行轮廓分类,SelectedContours, SortedContours1分别为输入轮廓。
*'character'为排序种类字符形式, 'true', 'column'分别表示递增列优先排序。
sort_contours_xld (SelectedContours, SortedContours1, 'character', 'true', 'column')
dev_display (Image)
disp_message (WindowHandle, 'XLD contours sorted by column', 'window', 12, 12, 'black', 'true')
*进行分类后轮廓从上到下逐一显示
for I := 1 to Number by 1
select_obj (SortedContours1, ObjectSelected, I)
dev_display (ObjectSelected)
wait_seconds (0.01)
endfor
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
dev_clear_window ()
*依据轮廓相对位置,进行轮廓分类,'true', 'row'分别表示递增行优先排序。
sort_contours_xld (SortedContours1, SortedContours2, 'character', 'true', 'row')
dev_display (Image)
*进行分类后轮廓从左到右逐一显示
disp_message (WindowHandle, 'XLD contours sorted by row', 'window', 12, 12, 'black', 'true')
for I := 1 to Number by 1
select_obj (SortedContours2, ObjectSelected, I)
dev_display (ObjectSelected)
wait_seconds (0.01)
endfor
复制代码
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4