我尝试通过它们的颜色和形状来检测交通标志,我从de颜色分割中获得二值图像,并尝试检测其中的三角形,除非三角形的所有边都完整ÿ不工作,检测不完整/完美的三角形
在这个图像中,例如它没有检测到任何三角形
我使用的代码是这样的:
vector<Point> approx;
findContours(copia,contours,CV_RETR_EXTERNAL,CV_CHAIN_APPROX_SIMPLE);
vector<Rect_ <int> > boundRect(contours.size());
vector<Rect_ <int> > boundRect_(contours.size());
for(size_t i=0; i<contours.size();i++)
{
approxPolyDP(Mat(contours[i]), approx,arcLength(Mat(contours[i]), true)*0.02, true);
if (approx.size() == 3 &&fabs(contourArea(Mat(approx))) > 300 && isContourConvex(Mat(approx)))
drawContours(capture->image,contours,i,Scalar(0,255,0));
这不是cotourArea的问题,我没有问题检测完整的三角形。我不知道我是否可以做一些事情来检测那种“不完整的三角形”,或者我将不得不做一些事情来完成三角形,以便我可以检测到它们。在这两种情况下,我有点失落
谢谢您的帮助
编辑:我忘了上传图片
我试图做凸起,它检测到更多的三角形(当双方的某些部分失踪它有时仍然失败),但现在我得到了很多图像中的误报,在没有任何遥远相似的地方到一个三角形 我会尝试使用曲率检测,关于RANSAC我不太清楚那是什么,我没有找到一个好的教程,你能告诉我在哪里可以学到更多的知识吗? – Kailegh 2015-04-13 15:19:38