OpenCVでCvBox2Dをどのように描画しますか? cvRectangleに類似の機能はありますか?opencvを描く?
コード例はCvBox2DためcvRectangleのような機能がありません
おかげ
OpenCVでCvBox2Dをどのように描画しますか? cvRectangleに類似の機能はありますか?opencvを描く?
コード例はCvBox2DためcvRectangleのような機能がありません
おかげ
をいただければ幸いです。これはCvBox2Dの構造である:
typdef struct {
CvPoint2D32f center;
CvSize2D32f size;
float angle;
} CvBox2D;
あなたは、長方形のポイントを取得し、ラインのセットとして四角形を描画するためにcvBoxPointsを使用することができます。
void cvBoxPoints(CvBox2D box, CvPoint2D32f pt[]);
cvPolyLineを使用して、線をより簡単に描画することもできます。
void cvPolyLine(CvArr* img, CvPoint** pts, int* npts, int contours, int isClosed, CvScalar color, int thickness=1, int lineType=8, int shift=0)
iplimageで回転した矩形を描画する機能。
void DrawRotatedRect(IplImage * iplSrc,CvBox2D rect,CvScalar color, int thickness CV_DEFAULT(1),int line_type CV_DEFAULT(8), int shift CV_DEFAULT(0));
void DrawRotatedRect(IplImage * iplSrc,CvBox2D rect,CvScalar color, int thickness, int line_type, int shift)
{
CvPoint2D32f boxPoints[4];
cvBoxPoints(rect, boxPoints);
cvLine(iplSrc,cvPoint((int)boxPoints[0].x, (int)boxPoints[0].y),cvPoint((int)boxPoints[1].x, (int)boxPoints[1].y),color,thickness,line_type,shift);
cvLine(iplSrc,cvPoint((int)boxPoints[1].x, (int)boxPoints[1].y),cvPoint((int)boxPoints[2].x, (int)boxPoints[2].y),color,thickness,line_type,shift);
cvLine(iplSrc,cvPoint((int)boxPoints[2].x, (int)boxPoints[2].y),cvPoint((int)boxPoints[3].x, (int)boxPoints[3].y),color,thickness,line_type,shift);
cvLine(iplSrc,cvPoint((int)boxPoints[3].x, (int)boxPoints[3].y),cvPoint((int)boxPoints[0].x, (int)boxPoints[0].y),color,thickness,line_type,shift);
}
cvRectangle関数がある場合は、なぜ同じようにしたいですか? – YAHOOOOO
cvRectangleは長方形のみのため cvBox2DはcvRectangleと互換性がありません – fdh