最近在用MSER来检测细胞区域,遇到了一个问题,就是怎样处理那些嵌套的区域(如图):
因为学识疏浅,没想到什么又快又好的办法处理,最后在网上看到了这么一段代码,发现是如此的简单
for(int i = 0; i < foundRect.size(); i++){
Rect r = foundRect[i];
int j = 0;
for(; j < foundRect.size(); j++){
//如果时嵌套的就推出循环
if( j != i && (r & foundRect[j]) == r)
break;
}
if(j == foundRect.size()){
cv::rectangle(img,r,cv::Scalar(255),1);
}
处理后的结果如下: