34 cv::Scalar(255, 255, 255),
41 const std::string& file_name) {
50 auto& supp = obj->camera_supplement;
52 auto area_id = supp.area_id;
56 cv::Point(
static_cast<int>(box.xmin),
static_cast<int>(box.ymin)),
57 cv::Point(
static_cast<int>(box.xmax),
static_cast<int>(box.ymax)),
58 cv::Scalar(0, 0, 0), 8);
59 float xmid = (box.xmin + box.xmax) / 2;
60 ACHECK(area_id > 0 && area_id < 9);
64 cv::Point(
static_cast<int>(box.xmin),
static_cast<int>(box.ymin)),
65 cv::Point(
static_cast<int>(box.xmax),
static_cast<int>(box.ymax)),
66 kFaceColors[area_id / 2], 2);
68 auto& tl = supp.cut_off_ratios[2];
69 auto& tr = supp.cut_off_ratios[3];
70 auto&& left_ratio = supp.visible_ratios[(area_id / 2) % 4];
71 auto w = box.xmax - box.xmin;
73 auto tm = std::max(tl, tr);
76 xmid = (x - w * tl) + (w + w * tl) * left_ratio;
78 xmid = x + (w + w * tr) * left_ratio;
81 xmid = x + w * left_ratio;
85 cv::Point(
static_cast<int>(box.xmin),
static_cast<int>(box.ymin)),
86 cv::Point(
static_cast<int>(xmid),
static_cast<int>(box.ymax)),
87 kFaceColors[(area_id / 2) % 4], 3);
89 cv_img, cv::Point(
static_cast<int>(xmid),
static_cast<int>(box.ymin)),
90 cv::Point(
static_cast<int>(box.xmax),
static_cast<int>(box.ymax)),
91 kFaceColors[area_id / 2 - 1], 2);
94 "obj-%02d: %.3f %.3f %.3f %.3f -- %.3f %.3f %.3f %.3f "
95 "-- %.0f %.0f %.0f %d\n",
96 obj_id, supp.visible_ratios[0], supp.visible_ratios[1],
97 supp.visible_ratios[2], supp.visible_ratios[3],
98 supp.cut_off_ratios[0], supp.cut_off_ratios[1],
99 supp.cut_off_ratios[2], supp.cut_off_ratios[3], box.xmin, xmid,
101 std::stringstream text;
103 text << name[0] << name[1] << name[2] <<
" - " << obj_id++;
106 cv::Point(
static_cast<int>(box.xmin),
static_cast<int>(box.ymin)),
107 cv::FONT_HERSHEY_PLAIN, 2, cv::Scalar(255, 0, 0), 2);
110 cv::imwrite(file_name.c_str(), cv_img);