这两天在研究opencv来对木材导管进行检测
大致的步骤是1.首先都读取的图片进行平滑处理
2.对图片进行腐蚀
3.运用Canny算子把图像转换成二值图,并提取边缘
4.对图片进行膨胀处理
5.依次读取每个轮廓,并筛选出面积合理的轮廓,也就是图像中的导管
traverse=cvStartFindContours(cannyImage,storage,sizeof(CvContour),CV_RETR_CCOMP,CV_CHAIN_APPROX_SIMPLE);
contours
=cvFindNextContour(traverse);
while (contours!=NULL)
{
    i
++;
    
if (cvContourArea(contours,CV_WHOLE_SEQ)>1500)
    
{
            cvDrawContours(myImage,contours,CV_RGB(
255,255,255),CV_RGB(255,0,231),2,1,CV_AA);
    }

    contours
=cvFindNextContour(traverse);
}

printf(
"%d",i);
contours 
= cvEndFindContours(&traverse);

以上就是导管筛选的大致步骤,显示效果还行,就是有些破裂的导管无法检测出来,目前还在改进中。
posted on 2008-07-18 17:43  俺是打铁的  阅读(288)  评论(0编辑  收藏  举报