1.一种基于图像处理的集装箱锁孔轮廓提取方法,包括如下步骤:步骤1:用安装在吊具上的摄像头采集下方集装箱的图像;
步骤2:利用基于HOG+SVM的集装箱锁孔粗定位方法获得上下锁孔的粗定位范围,该锁孔粗定位区域的宽度为width,高度为height,单位为像素,记为锁孔粗定位图像F1,图像大小为Akeyhole:
Akeyhole=width×height (1);
步骤3:通过区域分割方法Graph‑Based Segmentation对图像F1进行超像素分割,将图像分割为n1个超像素区域,记超像素区域集合S={Ri(xi,yi)|i=1,2,3,…,n1},其中Ri是由mi个像素组成的超像素区域,xi和yi分别表示区域Ri中心点的横坐标和纵坐标,Ri={pj|j=
1,2,3,…,mi},pj表示区域Ri中的像素;
步骤4:利用直方图对比度显著性计算方法HC计算集合S中所有超像素区域的显著性值,得到超像素的显著值集合Ssal={vi|i=1,2,3,…,n1},vi为超像素区域Ri的显著值;将Ssal中显著值最高的超像素区域,记为Rsal={pj|j=1,2,3,…,nsal},其中nsal表示Rsal中的像素数量;
步骤5:计算集合S中所有超像素中心点到超像素Rsal中心点的曼哈顿距离,并根据距离从小到大排序,得超像素集合S1={Rw|w=1,2,3,…,n1};
步骤6:进行锁孔区域拼凑,锁孔区域集合 区域填充度cold=0;
步骤7:计算得锁孔区域集合S2={pu|u=1,2,3,…,n2},区域集合S2的外接矩形为Rbox(xbox,ybox,wbox,hbox),其中pu表示集合S2中的像素,n2表示S2中的像素数量,xbox和ybox分别表示区域集合S2外接矩形左上角的横坐标和纵坐标,wbox和hbox分别表示区域集合S2外接矩形的宽度和高度;
步骤8:采用式(8)或(9)计算锁孔外接矩形Rhole(xhole,yhole,whole,hhole),xhole和yhole分别表示锁孔外接矩形左上角的横坐标和纵坐标,whole和hhole分别表示锁孔外接矩形的宽度和高度;
步骤9:利用GrubCut图割算法对图像F1进行处理,设置图像的前景和背景区域;将外接矩形内区域设置为可能的前景区域,矩形外区域设置为背景区域,须满足条件n2≥λ2,其中λ2为事先给定的锁孔大小阈值;若不满足条件n2≥λ2,设置集合S2中像素为可能的前景区域,区域Rsal中像素为前景区域,图像F1中的其余部分为背景区域;
步骤10:将GrubCut图割算法迭代λ3次,可得锁孔轮廓图像F2,λ3为事先给定的图割迭代次数;
步骤6具体如下:
步骤6.1:从超像素集合S1中取出元素R1,加入到集合S2中,在S2中记为Rn;并将元素R1从S1中删除,对集合S1根据距离长度从小到大重新排序;
步骤6.2:计算集合S2中的像素数量N:其中n为集合S2中超像素的数量,mn为S2中超像素的像素数量;
步骤6.3:提取集合S2中像素横坐标的最小值和最大值分别记为x1和x2,集合S2中像素纵坐标的最小值和最大值分别记为y1和y2;计算得集合S2中像素组成图像的最小外接矩形R(w,h),其中w表示矩形R的宽度,h表示矩形R的高度,矩形面积为A:w=x2‑x1 (4)h=y2‑y1 (5)A=w×h (6)步骤6.4:计算区域合并后的区域填充度cnew:步骤6.5:若满足条件cnew≥cold,则将cnew的值赋予cold;反之,将元素Rn从S2中删除;重复步骤6.1到6.5,直至 或迭代次数大于λ1,其中λ1表示事先给定的最大迭代次数。