halcon知识:圆度和紧凑度

目录

一、说明

二、圆度和紧凑度的直观演示

2.1 圆度的解释

2.2紧凑度(’compactness’)的解释

一、说明

本文是halcon知识:select_shape究竟怎么用(1)的继续,关于select_shape的用途说的还不够,因为这些属性很多,有必要分开介绍。

二、圆度和紧凑度的直观演示

2.1 圆度的解释

圆度概念:如果 F 是区域的面积,max 是中心到所有轮廓像素的最大距离,则形状因子 C 定义为:

halcon知识:圆度和紧凑度

对于下面图片中的若干个区域中,各个部件的圆度是多大?

select_shape(rig_Regions,SelectedRegions, ‘circularity’, ‘and’, 0, 1)

halcon知识:圆度和紧凑度

其效果是:

halcon知识:圆度和紧凑度

2.2紧凑度(’compactness’)的解释

如果 L 是轮廓的长度(参见 contlength),F 是区域的面积,则形状因子 C 定义为:

halcon知识:圆度和紧凑度

halcon知识:圆度和紧凑度

注意:圆的紧凑度最小为1;其它任意形状紧凑度大于1,比如:下图紧凑度为67.

halcon知识:圆度和紧凑度
read_image(Image,'d:/images/circles/compack')
get_image_size(Image, Width, Height)
dev_open_window(0, 0, Width, Height, 'black', WindowHandle1)
dev_open_window(0, 0, Width, Height, 'black', WindowHandle2)
disp_image(Image, WindowHandle1)
threshold(Image, Region, 100, 160)
connection(Region, rig_Regions)

region_features(rig_Regions,'compactness', Values)
select_shape(rig_Regions,SelectedRegions, 'compactness', 'and', 0, 1000)
tuple_string(Values, '.3f', StrVal)
set_display_font (WindowHandle2, 14, 'mono', 'true', 'false')
count_obj (SelectedRegions, Number)

for i:=1 to Number  by 1
    dev_set_color ('yellow')
    select_obj (SelectedRegions, tmp_obj, i )
    area_center (tmp_obj, Area, Row1, Column1)

    set_tposition (WindowHandle2, Row1, Column1)
    dev_set_color ('red')
    write_string (WindowHandle2, StrVal[i-1 ])
*     disp_message (WindowHandle, 'min: ' + StrVal, 'image', Row1, Column1 , 'black', 'true')
endfor

结论:圆度和紧凑度很相关的量,圆度一般介于【0,1】之间,正方形圆度为0.63;紧凑度介于

halcon知识:圆度和紧凑度,其中正方形接近1.8,最紧凑的图形是圆,紧凑度为1。

Original: https://blog.csdn.net/gongdiwudu/article/details/122116997
Author: 无水先生
Title: halcon知识:圆度和紧凑度

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/645085/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球