图像增加文字putText——opencv

图像写入文字

putText( Mat& img, const string& text, Point org, int fontFace,double fontScale,  Scalar color, int thickness=1, int lineType=8 );

参数解释:

putText(
		Mat& img, // 待绘制的图像
		const string& text, // 待绘制的文字
		Point origin, // 文本框的左下角
		int fontFace, // 字体 (如FONT_HERSHEY_PLAIN)
		double fontScale, // 尺寸因子,值越大文字越大
		Scalar color, // 线条的颜色(RGB)
		int thickness = 1, // 线条宽度
		int lineType = 8, // 线型(4邻域或8邻域,默认8邻域)
		bool bottomLeftOrigin = false // true='origin at lower left'
	);

举个栗子:

#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2\core\core.hpp>  
#include <opencv2\objdetect\objdetect.hpp>  
#include <opencv2\imgproc\types_c.h>  


using namespace std;
using namespace cv;
int main()
{
	Mat imageSource = imread("F:\\legend.jpg");
	Mat imageGrey;

	if (imageSource.empty())
	{

		cout << "could not load image..." << endl;

		return -1;
	}
	namedWindow("显示原图", WND_PROP_AUTOSIZE);//As literal meaning
	namedWindow("显示效果图", WND_PROP_AUTOSIZE);//As literal meaning

	imshow("显示原图", imageSource);
	putText(imageSource, "LegendWang", Point(20, 80), FONT_HERSHEY_PLAIN, 2, Scalar(0, 0, 255), 4, 8);
	putText(imageSource, "LegendWang", Point(60, 100), FONT_HERSHEY_SIMPLEX, 1, Scalar(255, 255, 25), 4, 8);
	putText(imageSource, "LegendWang", Point(100, 200), FONT_HERSHEY_DUPLEX, 3, Scalar(25, 255, 25), 4, 8);
	putText(imageSource, "LegendWang", Point(150, 500), FONT_HERSHEY_COMPLEX, 1, Scalar(255, 25, 25), 4, 8);
	putText(imageSource, "LegendWang", Point(200, 800), FONT_HERSHEY_TRIPLEX, 4, Scalar(30, 255, 25), 4, 8);
	putText(imageSource, "LegendWang", Point(250, 950), FONT_HERSHEY_COMPLEX_SMALL, 2, Scalar(25, 25, 25), 4, 8);
	putText(imageSource, "LegendWang", Point(20, 1000), FONT_HERSHEY_SCRIPT_SIMPLEX, 4, Scalar(160, 25, 25), 4, 8);
	putText(imageSource, "LegendWang", Point(100, 1350), FONT_HERSHEY_SCRIPT_COMPLEX, 1, Scalar(80, 255, 25), 4, 8);

	//在imageSource图片上,显示,位置在(20,80),字体类型为,字体大小为2,颜色为红色,字体厚度为4,线型默认为8.

	imshow("显示效果图", imageSource);

	imwrite("F:\\334.jpg", imageSource);


	waitKey(0);//等待按键响应后退出,0改为10,就是10ms后自动退出。
	return 0;

}

Result:
在这里插入图片描述

吐出来是这个样子的
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenCV是一款非常强大的计算机视觉库,其中包含了很多功能强大的图像处理和计算机视觉算法。而在这个系列的第三篇文章中,我们将重点介绍如何在OpenCV中绘制图形和文本。 OpenCV中绘制图形的函数包括cv2.line(直线),cv2.rectangle(矩形),cv2.circle(圆),cv2.ellipse(椭圆)和cv2.putText(文本)。这些函数的使用非常简单,只需要指定图像,开始点和结束点(或中心点和半径),颜色和线宽即可。 例如,我们可以使用cv2.rectangle函数在图像上绘制一个矩形: ``` import cv2 import numpy as np img = np.zeros((512,512,3), np.uint8) # 创建一个黑色的图像 cv2.rectangle(img,(384,0),(510,128),(0,255,0),3) # 绘制矩形 cv2.imshow("image",img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 在这个例子中,我们首先创建了一个512x512的黑色图像,然后使用cv2.rectangle函数在图像上绘制了一个矩形,并将其显示出来。在这里,矩形的左上角坐标是(384,0),右下角坐标是(510,128),颜色是绿色(0,255,0),线宽为3。 除了绘制图形,我们也可以使用cv2.putText函数在图像上绘制文本。这个函数的使用也非常简单,只需要指定图像,文本内容,位置,字体,字体大小和颜色即可。 例如,我们可以使用cv2.putText函数在图像上写入一个“Hello World!”的文本: ``` import cv2 import numpy as np img = np.zeros((512,512,3), np.uint8) # 创建一个黑色的图像 font = cv2.FONT_HERSHEY_SIMPLEX # 设置字体 cv2.putText(img,'Hello World!',(10,500), font, 1,(255,255,255),2,cv2.LINE_AA) # 绘制文本 cv2.imshow("image",img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 在这个例子中,我们使用cv2.putText函数在左下角绘制了一个“Hello World!”的文本,并将其显示出来。在这里,我们首先选取了字体类型为cv2.FONT_HERSHEY_SIMPLEX,然后指定了文本的位置(10,500),字体大小为1,颜色为白色(255,255,255),线宽为2,并且使用了cv2.LINE_AA参数,以实现更好的文本渲染效果。 综上所述,OpenCV中可以很方便地对图像进行绘制和文本处理,这对于图像处理和计算机视觉应用来说是非常重要的一步。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值