一种全自动嫁接机的嫁接苗接缝识别装置及接缝识别方法_3

文档序号:9397491阅读:来源:国知局
[0046] 图4为二值化处理流程图。
[0047] 图5为接缝识别算法流程图。
[0048] 图6为以宽度16沿直线灰度值求和曲线。
[0049] 图7为无缝图像的水平像素点灰度值累加和曲线。
[0050] 图8为有缝隙图像的水平像素点灰度值累加和曲线。
【具体实施方式】
[0051] 在图1中1.显示器2.输入输出与控制机构3.计算机(图像处理系统)4.光 源控制器5.工业相机6.环形光源7.镜头8.执行机构9.传送带10.背景板。
[0052] 软件处理过程
[0053] 软件处理的目的是把嫁接幼苗接缝的特征信息数字化,最终把所需的特征信息以 数据的形式反馈出来。本发明中,机器视觉部分软件程序主要包含图像采集、图像预处理、 提取嫁接幼苗接缝特征3种功能,应用的图像预处理方法包括灰度变换、阈值化图像、图像 去噪、对图像进行闭操作运算。嫁接幼苗接缝机器视觉识别检测系统设计总流程如图2所 示,当程序启动后,嫁接幼苗依次被处理,并把每一株嫁接幼苗处理所得的信息最终显示在 显示屏上,一株嫁接幼苗处理完毕后,判断穴盘中是否还有嫁接幼苗等待处理,如果穴盘中 不再有苗则程序终止,这一系列过程都将通过指令自动完成。
[0054] 使用视觉硬件系统中所选相机配套的图像采集程序MER-USBDevice来采集蔬菜 嫁接幼苗接缝的图像。通过该程序采集到蔬菜嫁接幼苗接缝的图像时,幼苗图像显示在显 示屏上,然后打开图像交换软件平台,把显示屏中的图像获取到计算机的内存中。
[0055] 图像采集模块负责图像的采集和输入,它与图像采集信息卡相连接,当计算机接 收到控制系统发出的图像采集通道的控制指令后,此模块开始工作。
[0056] 根据嫁接幼苗接缝的特征,依据视觉识别的原理,借助Matlab图像处理软件进行 算法研究。首先进行彩色图像灰度变换,再将灰度图像做阈值化处理,根据所采集并经过二 值化处理的图像中的灰度值特征,利用嫁接幼苗接缝与茎杆部分灰度值的差异进行区分。 对于经过二值化处理的图像,R、G、B值均相等,称为灰度值,每一个像素有一个灰度值。对 于8位的灰度图像,共有256,个灰度级,其灰度值范围为0~255。
[0057] 经过二值化处理之后的接缝图像,根据红色嫁接夹的上下边缘找出嫁接夹夹持住 的嫁接幼苗茎杆部分(包含嫁接夹),然后再根据图像分割原理去除嫁接夹,并对边界做形 态学闭操作运算处理,这样就获得了包含接缝部分的图像,再对此图像中的最长直线进行 延伸,延伸到中间区域的边界,然后以宽度16沿着直线对像素点灰度值进行累加求和,获 得图6所示曲线。考虑到在嫁接过程中可能产生的倾角,中间区域分割时采用了平行于夹 子的分割方法,即中间区域如果是倾斜的,可以分割出倾斜的夹子中间区域。分析曲线可 知,如果是一段常规的接穗苗或砧木苗的茎杆部分,则曲线接近于一条竖直的直线,而嫁接 夹中间为接穗苗和砧木苗结合的一段直径,此曲线中间部分即为接缝所在位置的像素点累 加和曲线,如果接穗苗和砧木苗的接缝质量较好,则接穗苗和砧木苗的嫁接结合面接触紧 密,因而接缝部位灰度值较小,故整条曲线为中部向左侧凹进去的线。如果此嫁接幼苗接缝 有缝隙,则得到的曲线中部位置像素点的灰度值较大,因而曲线为向右凸出的形状。
[0058] 根据接缝的特征,依据视觉识别的原理,借助Matlab图像处理软件进行算法研 究。首先找出嫁接夹夹持住的番茄直径部分(包含嫁接夹),然后再根据图像分割原理去 除嫁接夹,这样获得了包含接缝部分的图像,再对此图像进行水平方向像素点灰度值累加 求和,获得图7所示曲线。考虑到嫁接过程中可能产生的倾角,中间区域分割时采用了平行 于夹子的分割方法,即中间区域如果是倾斜的,可以分割出倾斜的夹子中间区域。分析曲 线可知,如果是一段常规的砧木或接穗的茎部分,则曲线接近于一条竖直的直线,而嫁接夹 中间为砧木和接穗结合的一段直径,此曲线中间部分即为接缝所在位置的像素点累加和曲 线,如果砧木和接穗的接缝质量较好,则砧木和接穗的嫁接结合面接触紧密,因而接缝部位 灰度值较小,故整条曲线为中部向左侧凹进去的线。如果此嫁接苗接缝有缝隙,则得到的曲 线中部位置像素点的灰度值较大,因而曲线为向右突出的形状,如图8所示。
[0059] 主要程序代码如下:
[0060] CN 105118028 A 说明书 7/10 页 R=l(:…I): (.1=1(:,:,2): 8=1(:,:.3):
[mn]=size(G); mini-m; tbr i= i for j^l :n if (R(i j)> 1.5-G(i j)&R(i,])> 1.5-B(i j)) R ㈦)=255: G(i,j)-255: B(i'j )=255: if mini>i mini-i; end end
[0061] end. end maxi^mini+400; for i^l :m Γογ j-1 :n if i<mini R(i,j )-255: end if i>maxi R(i,i )-255: end end end se = strel('disk'JQ); doseBW = imclose(R,se); cioscBW^doublcicloscBVV); for j \ :n ibi' i-l:m surnb\v(j)^doscBW(i,j) I surnbw(j): end end nuixsujn-O; for j=l :n if maxsum<sumbw(j) maxsi!m^sumbvv(j): end end for I :n if siimb\v(j)-=maxsiim b=j:; end end a-round(ar+T(b-a)/4); h =:r〇 u ? kI (b -- (n)/ 4): ricw-/cKiS(nm\l-iTiini,b-a'); for i= I;:(maxi-mini) for j-1 :(b-a) n;ew(i· j ):-I( i+mini,j+a):; if closeBW(i+ininiJ+a)=255 new(i,j )=255; end end
[0062] c vl BW 2 = OdgcincwJcanayf,0,9?;
[ml ?n I JrrSize(Iiew); n I /2: for j=lMil if 8W2(c-!5j)-I 利:; end ifBW2(c,j)二二 I end ifBW2(c-hl5,j)=l e3i:; end end kK(c2-cl)/15+(c3-c2)/15)/2; wid=i 6: c4^cl -ka::(c-l5); c5^(nl-c2)/k i c: e:6-e4-8:; for X=! :(c5-50) y=round( k ^ x+c 6); SLimlinc(x)=sum(nc\vix,y:(y : 15))): end nc:wiinc^crosfc5-50.nl-c6): for i=l :(e5-5:0): y=roimd( k*x+c:6}; for p l:(nl-c6) newline(ij)=new(i+50j+c6); end end for 1=1:(05-50) y=round
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1