提交 11723722 编写于 作者: littletomatodonkey's avatar littletomatodonkey

fix minAreaRect assert error

上级 78f9008d
...@@ -57,8 +57,12 @@ cv::RotatedRect PostProcessor::UnClip(std::vector<std::vector<float>> box, ...@@ -57,8 +57,12 @@ cv::RotatedRect PostProcessor::UnClip(std::vector<std::vector<float>> box,
points.emplace_back(soln[j][i].X, soln[j][i].Y); points.emplace_back(soln[j][i].X, soln[j][i].Y);
} }
} }
cv::RotatedRect res = cv::minAreaRect(points); cv::RotatedRect res;
if (points.size() <= 0) {
res = cv::RotatedRect(cv::Point2f(0, 0), cv::Size2f(1, 1), 0);
} else {
res = cv::minAreaRect(points);
}
return res; return res;
} }
...@@ -215,6 +219,9 @@ PostProcessor::BoxesFromBitmap(const cv::Mat pred, const cv::Mat bitmap, ...@@ -215,6 +219,9 @@ PostProcessor::BoxesFromBitmap(const cv::Mat pred, const cv::Mat bitmap,
std::vector<std::vector<std::vector<int>>> boxes; std::vector<std::vector<std::vector<int>>> boxes;
for (int _i = 0; _i < num_contours; _i++) { for (int _i = 0; _i < num_contours; _i++) {
if (contours[_i].size() <= 0) {
continue;
}
float ssid; float ssid;
cv::RotatedRect box = cv::minAreaRect(contours[_i]); cv::RotatedRect box = cv::minAreaRect(contours[_i]);
auto array = GetMiniBoxes(box, ssid); auto array = GetMiniBoxes(box, ssid);
...@@ -233,6 +240,9 @@ PostProcessor::BoxesFromBitmap(const cv::Mat pred, const cv::Mat bitmap, ...@@ -233,6 +240,9 @@ PostProcessor::BoxesFromBitmap(const cv::Mat pred, const cv::Mat bitmap,
// start for unclip // start for unclip
cv::RotatedRect points = UnClip(box_for_unclip, det_db_unclip_ratio); cv::RotatedRect points = UnClip(box_for_unclip, det_db_unclip_ratio);
if (points.size.height < 1.001 && points.size.width < 1.001) {
continue;
}
// end for unclip // end for unclip
cv::RotatedRect clipbox = points; cv::RotatedRect clipbox = points;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册