1. cv::rectangle和cv::putText绘制矩形框, 文字
#include <math.h>
#include <algorithm>
#include <numeric>
#include <opencv2/opencv.hpp>
#include <iostream>
#include <stdio.h>
#include <vector>
// ---------------------- visualize ---------------------- //
int kk = 0;
for (cv::Rect obj: objs)
{
// -------- rect --------
cv::Rect vis_box;
vis_box.x = (int) obj.x;
vis_box.y = (int) obj.y;
vis_box.width = (int) obj.width;
vis_box.height = (int) obj.height;
cv::rectangle(raw_image, vis_box, cv::Scalar(0,0,255), 2);
// -------- class --------
int l = labels[kk];
std::string text_label = CLASSES[l];
//std::cout << text << " ,";
cv::Point origin_label;
origin_label.x = vis_box.x+8;
origin_label.y = vis_box.y+8;
int font_face = cv::FONT_HERSHEY_PLAIN;
double font_scale = 1;
int thickness = 1;
cv::putText(raw_image, text_label, origin_label, font_face, font_scale, cv::Scalar(0, 255, 0), thickness, 4, 0);
// -------- score --------
std::string text_score = std::to_string(scores[kk]);
cv::Point origin_score;
origin_score.x = vis_box.x+8;
origin_score.y = vis_box.y+22;
cv::putText(raw_image, text_score, origin_score, font_face, font_scale, cv::Scalar(0, 255, 0), thickness, 4, 0);
kk = kk + 1;
}
参考链接: 文字绘制——cv::putText详解
2.