1.一种基于halcon的锂电池模组正负极检测方法,其特征在于,包括如下步骤: 1)用相机采集锂电池模组的初始图像;采用halcon算子提取图像边缘,标记为Edges; 2)采用halcon算子分割图像的边缘为直线边缘和圆边缘; 3)采用halcon算子分别根据长度值和凸性值对直线边缘和圆边缘进行选择,将一定长度的圆弧进行拟合,生成多个圆型ROI区域; 4)提取n个电池的圆心坐标、半径; 5)在第i个圆心处生成2/3半径的圆形ROI区域,对ROI区域内图像进行阈值分割; 6)获取提取区域的面积,当提取区域的面积大于设定值时为电池的正极,否则为电池的负极; 7)选择下一个电池的圆心生成2/3半径的圆形ROI区域,依次类推直至i=n。
2.如权利要求1所述的基于halcon的锂电池模组正负极检测方法,其特征在于,所述步骤1)中采用采用halcon算子edges_sub_pix(Image,Edges,'canny',1,20,40)提取图像边缘,得到的图像边缘记为Edges,其中'canny'表示滤波器类型,1表示光滑系数,20表示振幅小于20的不作为边缘,滞后阈值下界,40表示振幅大于40的作为边缘,滞后阈值上界。
3.如权利要求1所述的基于halcon的锂电池模组正负极检测方法,其特征在于,所述步骤2)中采用halcon算子segment_contours_xld(Edges,ContoursSplit,'lines_circles',
3,4,2)分割已提取到的边缘Edges为直线XLD边缘和圆XLD边缘,分割后的XLD边缘记为ContoursSplit,其中'lines_circles'表示分割轮廓的方式为“直线-圆”,3表示轮廓平滑的参数,4表示第一次用Ramer算法(即用直线段递进逼近轮廓)时的最大直线距离,2表示第二次逼近轮廓时的最大直线距离。
4.如权利要求1所述的基于halcon的锂电池模组正负极检测方法,其特征在于,所述步骤3)包括以下步骤:
S1:采用halcon算子select_shape_xld(ContoursSplit,SelectedXLD,'
contlength','and',150,500)和halcon算子select_shape_xld(SelectedXLD,SelectedCon,'convexity','and',0.95,1),根据XLD边缘ContoursSplit的长度选择XLD边缘,选择后的XLD边缘记为SelectedXLD,根据XLD边缘SelectedXLD的凸性值选择XLD边缘,选择后的XLD边缘记为SelectedCon,其中'contlength'表示选择关注的特征为边缘长度,'convexity'表示选择关注的特征为凸性值,'and'表示单个特征之间的链接逻辑类型,150,
500和0.95,1表示所要求特征的最小值和最大值;
S2:采用halcon算子union_cocircular_contours_xld(SelectedCon,UnionContours,
0.5,0.1,0.2,30,10,10,'true',1),合并XLD边缘SelectedCon中的同圆XLD边缘,合并后的XLD边缘记为UnionContours,其中0.5表示圆弧端点与各自圆心的连线构成的夹角阈值,
0.1表示重叠轮廓弧度阈值,0.2表示两轮廓端点切线夹角阈值,30表示两轮廓端点连续长度阈值,10表示两轮廓半径差阈值,'true'表示小轮廓是否合并,1表示迭代次数;
S3:采用halcon算子fit_circle_contour_xld(UnionContours,'algebraic',-1,0,0,
3,2,Row,Column,Radius,StartPhi,EndPhi,PointOrder)和halcon算子gen_circle(Circle,Row,Column,Radius),根据XLD边缘UnionContours拟合圆并获取圆参数,获取的圆参数有圆心行坐标Row、列坐标Column、圆半径Radius等,根据拟合圆参数生成多个圆型ROI区域,生成的圆型ROI区域记为Circle,其中'algebraic'表示拟合圆采用的算法;
S4:采用halcon算子erosion_circle(Circle,RegionErosion,115)、union1(RegionErosion,RegionUnion)、connection(RegionUnion,ConnectedRegions),腐蚀生成的圆形ROI区域Circle,去除粘连,腐蚀后的圆形ROI区域记为RegionErosion,其中115表示腐蚀结构元素半径;将圆形ROI区域RegionErosion合并到同一区域RegionUnion便于分割圆形ROI区域RegionUnion不连通区域ConnectedRegions;
S5:采用halcon算子select_shape(ConnectedRegions,SelectedRegions,'area','and',1000,10000000),选择不连通区域ConnectedRegions中像素面积大于1000的区域,选择后的圆形ROI区域记为SelectedRegions,此时的圆形ROI区域SelectedRegions即为锂电池所在区域。
5.如权利要求1所述的基于halcon的锂电池模组正负极检测方法,其特征在于,所述步骤4)包括以下步骤:采用halcon算子area_center(SelectedRegions,Area,Row1,Column1)获得圆形ROI区域SelectedRegions的参数:行坐标Row1、列坐标Column1,行列坐标均为数组,一一对应后即为单颗锂电池中心的行列坐标;然后采用halcon算子count_obj(SelectedRegions,Number)计算锂电池个数,锂电池个数记为Number。
6.如权利要求1所述的基于halcon的锂电池模组正负极检测方法,其特征在于,所述步骤5)包括以下步骤:
S1:依次采用halcon算子gen_circle(Circle1,Row1[i],Column1[i],Radius*2/3)在单颗锂电池中心生成以电池2/3半径为半径的圆形ROI区域Circle1,其中Row1[i],Column1[i]为一一对应的锂电池中心坐标,Radius*2/3为圆形ROI区域半径;
S2:采用halcon算子reduce_domain(Image,Circle1,ImageReduced)在初始图像Image中划分出圆形ROI区域Circle1所在位置的图像ImageReduced,此时图像ImageReduced即为锂电池极片区域的图像;
S3:采用halcon算子threshold(ImageReduced,Regions,0,90)通过阈值分割提取图像ImageReduced中深色区域。
7.如权利要求1所述的基于halcon的锂电池模组正负极检测方法,其特征在于,所述步骤6)包括以下步骤:首先采用halcon算子area_center(Regions,Area1,Row2,Column2)计算黑色区域Regions的面积Area1;然后通过if(Area1>2000)对单颗锂电池的正负极进行判断。