OpenCV 怎样提取类似方形的区域

右边的图我在HSV模型下选出了近似黄色的区域(左图的白色区域),怎么样才能从坐边的二值图中选出类似方形的区域呢? 用最小外接矩的面积和区域面积比的话上层的黄色木块就没有了...请帮帮忙吧

我觉得颜色提取的不精确也是一个原因 但怎么才能准确确定黄色的HSV值呢? 光线或者木块的材质会有影响的吧
图片说明

http://blog.csdn.net/wangyaninglm/article/details/41864607

我写的闭合轮廓检测

检测轮廓,保留最大的轮廓就行了:

 // Eliminate too short or too long contours  
111.  
112.    /* 
113.    int cmin= 100;  // minimum contour length 
114.    int cmax= 1000; // maximum contour length 
115.    std::vector<std::vector<cv::Point>>::const_iterator itc= contours.begin(); 
116.    while (itc!=contours.end()) { 
117. 
118.        if (itc->size() < cmin || itc->size() > cmax) 
119.            itc= contours.erase(itc); 
120.        else  
121.            ++itc; 
122.    } 
123.     
124.    */  

你想全自动的分割,出黄色块,单一的办法肯定不行,hsv跟rgb想结合试试看

或者用交互的办法啊,图割,分水岭什么的

光照,背景色等都会对你的识别造成一定的影响,先对图像做降噪处理,然后再找你要的