OpenCV4机器学习:标注文字和矩形框
Posted AI 菌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV4机器学习:标注文字和矩形框相关的知识,希望对你有一定的参考价值。
前言:
本专栏主要结合OpenCV4,来实现一些基本的图像处理操作、经典的机器学习算法(比如K-Means、KNN、SVM、决策树、贝叶斯分类器等),以及常用的深度学习算法。
系列文章,持续更新:
- OpenCV4机器学习(一):OpenCV4+VS2017环境搭建与配置
- OpenCV4机器学习(二):图像的读取、显示与存储
- OpenCV4机器学习(三):颜色空间(RGB、HSI、HSV、Lab、Gray)之间的转换
- OpenCV4机器学习(四):图像的几何变换、仿射变换
一、基本介绍
在处理图像任务中,比如目标检测,通常想会将检测到的结果通过框和文字的形式显示出来。刚好OpenCV库就提供了这样的一些函数,不仅提供了在图像上添加文字的putText()函数,还提供了多个图形绘制函数,比如cicle()、ellipse()、rectangle()、line()函数等,分别用来绘制圆形、椭圆形、矩形框和直线。
二、函数解释
1、putText() 文字标注函数
putText() 函数可以在源图像指定位置加上文字注释,函数定义如下:
void cv::putText(InputOutputArray img, //输入图像
const String & text, //添加的文字
Point org, //插入字符在图像中的左上角位置
int fontFace, //字体类型
double fontScale, //字体大小比例因子
Scalar color, //字体颜色
int thickness = 1, //字体粗细
int lineType = LINE_8, //字体线条类型
bool bottomLeftOrigin = false) //默认为false,图像数据原点在左上角;当为true时,图像数据原点在左下角。
2、rectangle() 绘制矩形框函数
rectangle() 函数可以绘制矩形框,其函数定义如下:
void cv::retangle(Mat &img, //输入图像
Rect rec, //Rect 类型的矩形框变量
const Scalar & color //矩形框颜色
int thickness = 1, //线条粗细
int lineType = LINE_8, //线段类型
int shift = 0) //点坐标中的小数位数
三、代码实现
下面,我们来实现对特定目标的文字标注和矩形框:
#include<iostream>
#include<opencv.hpp>
using namespace std;
using namespace cv;
int main() {
Mat srcImg, dstImg;
srcImg = imread("D:\\\\Project\\\\VSProject\\\\OpenCV4\\\\data\\\\cat.jpg", 1); // size = 036x584
int left = 498, top = 272, width = 100, height = 100;
Rect rect1(left, top, width, height); //指定矩形区域的左上角和矩形长、宽
rectangle(srcImg, rect1, Scalar(0, 255, 0), 2); //画矩形框
putText(srcImg, "eye", Point(498, top-10), FONT_HERSHEY_SIMPLEX, 0.8, Scalar(255, 255, 255), 2, 3); //标注文字
namedWindow("显示", WINDOW_AUTOSIZE); //WINDOW_NORMAL
imshow("显示", srcImg);
waitKey(0);
return 0;
}
最终显示:
以上是关于OpenCV4机器学习:标注文字和矩形框的主要内容,如果未能解决你的问题,请参考以下文章