clip_region算子

* Init
dev_update_off ()
*读取图片 read_image (Image,
'fabrik') *区域增长法
regiongrowing (Image, Regions,
1, 1, 3, 100)
*统计区域个数 count_obj (Regions, NumberOfOriginalRegions)
* * Clip region in two ways get_system ('store_empty_region', Information) set_system ('store_empty_region', 'true') * After clipping, the now empty regions are still stored
*分割出对应范围内的区域数量,因为前面设置了保存空区域的设置,所以是包含了空区域的 clip_region (Regions, RegionClippedWithEmptyRegions,
100, 100, 455, 455) count_obj (RegionClippedWithEmptyRegions, NumberOfClippedRegionsWithEmptyRegions) set_system ('store_empty_region', 'false') * After clipping, the now empty regions are rejected
*这里设置false后分割的对应范围内的区域数量 clip_region (Regions, RegionClipped,
100, 100, 455, 455) count_obj (RegionClipped, NumberOfClippedRegionsWithoutEmptyRegions) * * Display results dev_close_window ()
*获取图片大小 get_image_size (Image, Width, Height) dev_open_window (
0, 0, Width, Height, 'black', WindowHandle) set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
*展示原图片 dev_display (Image) dev_set_colored (
12) dev_display (Regions) disp_message (WindowHandle, NumberOfOriginalRegions + ' original regions', 'window', 12, 12, 'black', 'true') disp_continue_message (WindowHandle, 'black', 'true') stop () dev_display (Image) * dev_set_color ('white') * dev_display (Regions) dev_set_colored (12)
*展示分割出来部分的区域 dev_display (RegionClipped) disp_message (WindowHandle, NumberOfClippedRegionsWithoutEmptyRegions
+ ' clipped regions', 'image', 110, 110, 'blue', 'true') set_system ('store_empty_region', Information) dev_update_on ()

 ========================================================================

regiongrowing (Image,Outregion: Row,Col,Tolerance,MinSize) 

中文名称:区域增长法获取图像分割区域(region)

算子的前两个参数 分别为输入图像 和 分割后的输出区域;

Row 和Col 定义了在图像内相邻移动的模板的长和宽度大小;

Tolerance 定义了两个相邻模板中心灰度值差 需要所要满足的 条件(即判断两个区域是否为同一区域的灰度差异最小值),具体如下:

                                      |g1-g2|<Tolerance 

即:两个相邻模板中心灰度值的差的绝对值小于 给定的Tolerance的值 则会认为这两个区域属于同一个区域,否则不然

MinSize 作为一个限制,限定了用上面方法分割出的区域最终不能小于MinSize 给定的值,否则不作为区域输出。

 

clip_region(Region : RegionClipped : Row1, Column1, Row2, Column2 : )
函数将Region 内的区域剪切到Row1, Column1, Row2, Column2两点坐标点组成的矩形区域中。
函数会比将gen_rectangle1生成区域传递给函数intersection,在效率上来得高效。

 

posted @ 2020-08-07 14:58  白菜小腾  阅读(895)  评论(0)    收藏  举报