错误C3861:DrawTarget:未找到dentifier

时间:2012-12-12 05:22:03

标签: c++ opencv

问题是什么? 2功能:1发现蓝球,第2发射目标。伙计们,请解释一下。错误C3861:DrawTarget:未找到dentifier

第一次获取图像数据,颜色条件,发现
轮廓

  void FindBall(IplImage* Img)
  {
  IplImage* Image=cvCreateImage( cvGetSize(Img), 8, 3 );
  cvCopy(Img,Image);

  uchar* ptr1;
  ptr1 = (uchar*) (Image->imageData );
  int i,j;
  for(i=0;i<Img->height;i++)
  for(j=0;j<Img->width;j++)
  {
  //B >2*G,B>2*R
  if (ptr1[j*3+i*Image->widthStep]>2*ptr1[j*3+1+i*Image->widthStep] &&
  ptr1[j*3+i*Image->widthStep]>2*ptr1[j*3+2+i*Image->widthStep])
  {
  ptr1[j*3+i*Image->widthStep]=255;
  ptr1[j*3+1+i*Image->widthStep]=255;
  ptr1[j*3+2+i*Image->widthStep]=255;
  }
  else
  {
  ptr1[j*3+i*Image->widthStep]=0;
  ptr1[j*3+1+i*Image->widthStep]=0;
  ptr1[j*3+2+i*Image->widthStep]=0;
  }
  }
  //finding contour

  Counter(Image);
  if (center.x>-1)
  {
  CvPoint p;
  p.x=center.x;
  p.y=center.y;
  //cvCircle( Img, p, radius, CV_RGB(0,255,0), 3, 8, 0 );
  DrawTarget(Img, p.x, p.y, radius);
  }
  cvReleaseImage( &Image );
  }

第二个功能绘图目标,在第一个版本中绘制圆圈,但我想要目标))

  void DrawTarget(IplImage* img, int x, int y, int radius)
  {
  cvCircle(img,cvPoint(x, y),radius,CV_RGB(250,0,0),1,8);
  cvLine(img, cvPoint(x-radius/2, y-radius/2), cvPoint(x+radius/2, y+radius/2),CV_RGB(250,0,0),1,8);
  cvLine(img, cvPoint(x-radius/2, y+radius/2), cvPoint(x+radius/2, y-radius/2),CV_RGB(250,0,0),1,8);
  }

1 个答案:

答案 0 :(得分:1)

我想,你需要的只是在FindBall()函数之前声明DrawTarget(),如下所示:

// forward declaration
void DrawTarget(IplImage* img, int x, int y, int radius);

void FindBall(IplImage* Img)
{
....