色と形状で交通標識を検出しようとしています。色のセグメンテーションからのバイナリ イメージがあり、その中の三角形を検出しようとしています。三角形のすべての辺が完全でない限り、機能しません。
たとえば、この画像では、三角形は検出されません
私が使用しているコードはこれです:
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 の問題ではありません。完全な三角形の検出に問題はありません。そのような「完全ではない三角形」を検出するために何かできるかどうか、またはそれらを検出できるように三角形を完成させるために何かをしなければならないかどうかはわかりません。いずれにせよ、私は少し迷っています
ご協力ありがとうございました
編集:画像をアップロードするのを忘れていました