liulei01 / DRBox

A deep learning based algorithm to detect rotated object, for example, objects in remote sensing images
Other
421 stars 142 forks source link

你好,请问长、宽,角度标记时是怎么确定的 #5

Closed huang229 closed 6 years ago

huang229 commented 6 years ago

cv::RotatedRect rect = cv::RotatedRect(cv::Point(centerX, centerY), cv::Size(widths, heights), -angle); cv::Point2f vertices[4]; rect.points(vertices); for (int k = 0; k < 4; k++) { cv::line(img, vertices[k], vertices[(k + 1) % 4], cv::Scalar(0, 0, 255)); } 我使用你的标记信息,使用此函数在图像上把框画出来,不知道正确与否?因为画框与角度太相关。 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

第二个问: 此外,我在标记的时候,每个目标对应一些列的凸包点, std::vector<std::vector>pointBase(position.size()); Rect = cv::minAreaRect(pointBase[i]); // 第 i 个目标 cv::Point2f P[4]; Rect.points(P); 以此求出目标的外接矩形、宽高、角度,此角度不能直接用,它是[-90, 0],因此我采用图像矩求的外接矩形的角度。

第三问: 请问是你的标记信息是否是规定x方向就是宽,y方向就是高? 目前训练不收敛,应该是自己准备的数据的角度有问题,还请大大你指点,非常感谢!!!