Bootstrap

感兴趣区域提取算子

threshold阈值处理提亮区域

connection 区域打散

fill_up 填充打散区域

select_shape 选择符合条件区域

模板匹配创建时也需要先进行感兴趣区域创建

blob 边缘提取 几何测量  模板匹配

blob

二值化图像分割

   Blob分析(Blob Analysis)是对图像中相同像素的连通域进行分析(该连通域称为Blob)。其过程其实就是将图像进行二值化,分割得到前景和背景,然后进行连通区域检测,从而得到Blob块的过程。简单来说,blob分析就是在一块“光滑”区域内,将出现“灰度突变”的小区域寻找出来。

获取图像->分割图像(区分前景像素和背景像素)->特征提取(比如面积、重心、旋转角度等)

1.常见特征提取        

1)、区域特征:              

a:面积area;              

b:力矩Moments;              

c:平行于主轴的最小矩形smallest_rectangle1;              

d:任意方向的最小矩形smallest_rectangle2;              

e:最小圆形smallest_circle;              

f:凸包面积convexity;              

g:contlength区域边界长度;              

h:圆形roundness;              

j:圆度circularity;              

k:紧密度compactness;              

l:矩形度rectangularity;      

 2)、灰度特征              

a:简单灰度值特征:区域的平均灰度值;              

b:区域的最小和最大灰度值;

2.常用算子总结      

 1)、图像预处理常用算子:              

a:mean_image:均值滤波              

b:gauss_image:高斯滤波              

c:median_image:中值滤波        

2)、动态获取分割参数常用算子:              

a:gray_histo_abs:灰度直方图              

b:histo_to_thresh:直方图二值化

3.开运算和闭运算        

图像分割时,会用到开运算和闭运算,采用不同的分割策略,效果会不一样

1)、开运算 先腐蚀后膨胀;        

2)、闭运算 先膨胀后腐蚀;        

3)、腐蚀;        

4)、膨胀。        

开运算和闭运算要用到的算子如下:        

1)、开运算 opening(ConnectedRegions, ConnectedRegions, RegionOpening1)        

2)、闭运算 closing(RegionOpening1, RegionOpening1, RegionClosing1)        

3)、腐蚀 erosion1(RegionClosing1, RegionClosing1, RegionErosion1, 1)        

4)、膨胀 dilation1(RegionErosion1, RegionErosion1, RegionDilation1, 1)        

5)、圆形结构开运算 opening_circle(ConnectedRegions, RegionOpening, 3.5)        

6)、圆形结构闭运算 closing_circle(RegionOpening, RegionClosing, 3.5)        

7)、圆形结构腐蚀 erosion_circle(RegionClosing, RegionErosion, 3.5)        

8)、圆形结构膨胀 dilation_circle(RegionErosion, RegionDilation, 3.5)

边缘提取

edges_sub_pix(Image : Edges : Filter, Alpha, Low, High : )

提取图像精确边缘 (精确边缘就是亚像素边缘)

*提取亚像素精密边缘轮廓

edges_sub_pix (ImageReduced, Edges, 'canny', 2, 20, 60)

*计算个数,

count_obj (Edges, Number)

*读取图片
read_image (Image, 'double_circle')
 
*关闭窗口
dev_close_window ()
*获得图片的大小
get_image_size (Image, Width, Height)
*打开窗口
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
 
*分割包含边的区域
*快速二值化
fast_threshold (Image, Region, 0, 120, 7)
*获得区域的边缘---对区域求轮廓
boundary (Region, RegionBorder, 'inner')
*相对于其最小的周围矩形剪裁区域。
clip_region_rel (RegionBorder, RegionClipped, 5, 5, 5, 5)
*膨胀
dilation_circle (RegionClipped, RegionDilation, 2.5)
*抠图
reduce_domain (Image, RegionDilation, ImageReduced)
 
*在包含边缘的图像子域中,提取亚像素精确边缘。
 
*使用Deriche、Lanser、Shen或Canny过滤器提取亚像素精确边缘。
edges_sub_pix (ImageReduced, Edges, 'canny', 2, 20, 60)
*将亚像素轮廓等高线分为线段和圆弧或椭圆弧。
segment_contours_xld (Edges, ContoursSplit, 'lines_circles', 5, 4, 3)
*进行计数
count_obj (ContoursSplit, Number)
dev_display (Image)
dev_set_draw ('margin')
dev_set_color ('white')
dev_update_window ('off')
for I := 1 to Number by 1
    *通过索引号选取数组内的指定元素
    select_obj (ContoursSplit, ObjectSelected, I)
    *返回xld轮廓的全局属性值
    get_contour_global_attrib_xld (ObjectSelected, 'cont_approx', Attrib)
    
    *Attrib有-1 0 1
    *将圆拟合到圆的圆弧线段
    if (Attrib > 0)
        *对XLD轮廓进行圆弧拟合
        fit_circle_contour_xld (ObjectSelected, 'ahuber', -1, 2, 0, 3, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder)
        *绘制拟合出来的圆
        gen_circle_contour_xld (ContCircle, Row, Column, Radius, 0, rad(360), 'positive', 1.0)
        *显示圆
        dev_display (ContCircle)
    endif
endfor
*设置颜色、线宽
dev_set_colored (12)
dev_set_line_width (3)
*显示边缘 
dev_display (ContoursSplit)

几何测量  

抓边

测量包括物体大小的测量、距离的测量以及物体完整度的检测。工业机器视觉常用1D测量和2D测量。大部分测量基于标定之后。

1D测量步骤 自定义测量模型(draw_rectangle2 /gen_rectangle2 )-创建测量句柄(gen_measure_rectangle2 )-开始测量(measure_pos )-显示测量结果(disp_message )-清除测量句柄(close_measure )

2D测量步骤 创建测量句柄(create_metrology_model )-设置图片相对大小到句柄(set_metrology_model_image_size )-定义测量模型(draw_ellipse )-将测量模型添加到句柄(add_metrology_object_ellipse_measure )-开始测量(apply_metrology_model)-拟合被测模型(fit_ellipse_contour_xld )-显示测量结果(disp_message )-清除测量句柄(close_measure )

模板匹配

步骤:获取图像(read_image)-创建模板(create_ncc_model)-查找模板(find_ncc_model)-清除模板(clear_ncc_model)

模板匹配在机器视觉工业现场是较为常用的一种方法,常用于定位通过算法在新的图像中找到模板图像位置

基于灰度 ncc  

基于形状 shape

基于轻微变形 scaled_shape

图像预处理(对图像进行即时校正和图像增强等预处理,方便后续的检测和识别)

图像形态学分析(通过改变局部区域的像素形态,以对目标进行增强,或者为后续进行图像分割、特征提取、边缘检测等操作做准备)

图像分割(将感兴趣的局部区域从背景中分离出来,使关键目标更便于辨识和分析)

;