OpenCV4机器学习:标注文字和矩形框

Posted AI 菌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV4机器学习:标注文字和矩形框相关的知识,希望对你有一定的参考价值。

前言:

本专栏主要结合OpenCV4,来实现一些基本的图像处理操作、经典的机器学习算法(比如K-Means、KNN、SVM、决策树、贝叶斯分类器等),以及常用的深度学习算法。

系列文章,持续更新:


一、基本介绍

在处理图像任务中,比如目标检测,通常想会将检测到的结果通过框和文字的形式显示出来。刚好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机器学习:标注文字和矩形框的主要内容,如果未能解决你的问题,请参考以下文章

cdr调整文本框行距?

怎么用labelme标注交通灯

OpenCV4机器学习:OpenCV4+VS2017环境搭建与配置

Axure基础:矩形操作

OpenCV4机器学习:KNN 原理及实现

OpenCV4机器学习:KNN 原理及实现