我试图通过颜色和形状来检测交通标志,我有来自颜色分割的二进制图像,我尝试检测其中的三角形,除非三角形的所有边都是完整的,否则不起作用,
例如,在此图像中,它没有检测到任何三角形
我正在使用的代码是这样的:
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 的问题,我检测完整的三角形没有问题。我不知道我是否可以做一些事情来检测那种“不完整的三角形”,或者我必须做一些事情来完成三角形,这样我才能检测到它们。无论哪种情况,我都有点迷路
谢谢您的帮助
编辑:我忘了上传图片