流水线鸡蛋检测

第一章外圆检测

第二章内圆检测

第三章椭圆及圆检测

------------------------------详细分割线--------------------------------------------

第一章外圆检测

首先可以发现原彩图的背景统一是黑色的,所以对RGB通道进行背景过滤

th_black=15

 if A(fi,fj,1)>th_black||A(fi,fj,2)>th_black||A(fi,fj,3)>th_black
                F1(fi,fj)=1;
            end

然后二值化,填充孔洞,缘检测后找到质心,将质心上下左右周围200(经验值)像素去掉最终得到右下角的图。进行椭圆,原检测。

 

--------------分割线-----------------------------------------------------------------------

第二章内圆检测

 

首先将原图转换成ycbcr图像,对ycbcr图像第3通道图像进行灰度自适应处理得到图B。

然后对B进行Kmeans分割,得到图E.

然后引入第一章计算的大圆心

因为蛋黄都经过圆心,所以在E图上将圆心上下左右9像素区域进行RGB像素统计(9经验值)

然后根据统计的RGB阈值过滤掉蛋以外的所有像素得到图C

然后对C填充孔洞,求最大连通域,得图D,再边缘检测,进而椭圆,圆检测。

为什么要求最大连通域呢,因为成千上万张图片,情况复杂,难免会出现一些蛋黄外的或大或小的斑点,所以求最大连通域可以过滤掉斑点,复杂光照的影响。

 

 改进思路

原思路是针对大部分情况核都是通过圆心进而得到Kmeans图蛋黄的RGB范围

但林子大了什么鸟都有,也有不经过圆心的蛋黄,所以改进思路是圆心4领域,9领域,16 领域

采样得出最暗的区间范围,这样做了后,是纠正了部分图像,但也会导致某些经过圆心的蛋黄采样过于偏暗,导致蛋黄不全,无法检测椭圆。经过测试改进思路的准确率反而降低,所以仍然采用圆心采样法。

--------------第三章椭圆,圆检测------------------------------------------------------------------------

圆检测

[circlefind]=findcircle(img6,minr,maxr,stepr,stepa,percent);

minr,maxr即检测圆的半径范围

stepr检测步径,打个比方每走三步能看见一颗树还是每走八步能看见一颗树

stepa检测角度,打个比方秒针的点比时针的角度要密

percent圆的严苛程度,越高越接近于圆

椭圆检测

[ellipses1, ~, posi] = ellipseDetectionByArcSupportLSs(img2, Tac, Tr, specified_polarity);

 Tac = fix(360*0.14);%完整性
 Tr = 0.12;%椭圆边缘点数量比列系数
 specified_polarity = 0;%sp:椭圆正负性,取1只搜索比背景亮的椭,取0则全部搜索。
       


        

 

sp:椭圆正负性,描述椭圆内外灰度情况(正-内亮外暗,负-外暗内亮),取1只搜索比背景亮的椭圆,反之只搜索比背景暗的椭圆,取0则全部搜索。 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值