当前帖子演示对提取的XLD精度的字符轮廓进行排序功能
首先调用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
复制代码
|