cv::Rect r = get_rect(color_img, res_box.bbox); cv::Point2i tl = r.tl(); cv::Point2i br = r.br(); resized_box = {float(tl.x), float(tl.y), float(br.x), float(br.y)}; cv::rectangle(color_img, r, cv::Scalar(0x27, 0xC1, 0x36), 2); cv::putText(color_img, class_names[res_box.class_id], cv::Point(r.x, r.y - 1), cv::FONT_HERSHEY_PLAIN, 1.2, cv::Scalar(0xFF, 0xFF, 0xFF), 2);
时间: 2024-04-18 20:33:38 浏览: 88
这段代码涉及到使用OpenCV进行图像处理和绘制的过程。
首先,`get_rect` 函数从 `color_img` 图像中获取一个矩形区域 `r`,该矩形区域是通过 `res_box.bbox` 定义的。
然后,通过 `r.tl()` 和 `r.br()` 分别获取矩形 `r` 的左上角和右下角的像素坐标,并将它们分别赋值给 `tl` 和 `br`。
接下来,将获取到的坐标转换为浮点数,并将它们组成一个新的矩形 `resized_box`。
然后,使用 `cv::rectangle` 函数在 `color_img` 图像上绘制一个矩形框,使用 `cv::Scalar(0x27, 0xC1, 0x36)` 设置框的颜色为绿色,线宽为2。
最后,使用 `cv::putText` 函数在 `color_img` 图像上添加类别名称文本,文本位置为矩形 `r` 的左上角,使用 `cv::FONT_HERSHEY_PLAIN` 字体,字体大小为1.2,颜色为白色,线宽为2。
这段代码的目的是从图像中提取矩形区域,并在图像上绘制矩形框和添加类别名称文本。
阅读全文