void DrawAndShowCircle(int windowWidth, int windowHeight,int windowType,Scalar windowBGColor, VirtualCircle circle)
{
cv::circle(circleImage,circle.Center,circle.Radius,circle.Color,circle.Thickness,circle.LineType);
}
void DrawAndShowCircles(int windowWidth, int windowHeight,int windowType,Scalar windowBGColor, vector<VirtualObject> circles)
{
circleImage = Mat(windowHeight,windowWidth,windowType);
circleImage.setTo(windowBGColor);
for(vector<VirtualObject>::iterator it = circles.begin(); it != circles.end(); ++it)
{
DrawAndShowCircle(windowWidth,windowHeight,windowType,windowBGColor,*it);
}
imshow("circle",circleImage);
cvWaitKey(0);
}
은 내가 문제로해야하는 DrawAndShowCircles에서 내가 사용하는 시점에서, 타입 캐스팅을 이해하기에 붙어 있다는 것입니다 다음과 같은 기능 for 루프는 객체를 통과합니다.
은 내가 벡터를 통과하고 원을 보여주기 위해 노력하고 VirtualCircle
상속 기본 클래스 VirtualObject
있습니다. 이것은 OpenCV에 대해 수행되고 있으므로 일부 OpenCV 기능을 찾을 수 있습니다. 여기
vector<VirtualObject> circles;
circles.push_back(VirtualCircle(Point(100,50),15,2,Scalar(255,100,100),1));
circles.push_back(VirtualCircle(Point(100,100),25,2,Scalar(100,255,100),1));
circles.push_back(VirtualCircle(Point(100,150),35,2,Scalar(100,100,255),1));
DrawAndShowCircles(200,200,CV_8UC3,Scalar(255,255,255),circles);
입니다. 타입 캐스팅은 나에게 분명하지 않다. 제발 조언.
포인터를 사용하면 개체 조각이 생깁니다. – chris
당신은 벡터에 대한 포인터를 의미합니까? 벡터 ?? –