首页 > 其他分享 >OpenCV(cv::putText())

OpenCV(cv::putText())

时间:2024-10-31 13:43:03浏览次数:3  
标签:putText FONT int HERSHEY OpenCV 图像 文本 cv

目录



OpenCV 的 cv::putText() 函数用于在图像上绘制文本。它具有多种参数,使您可以控制文本的内容、位置、字体、大小、颜色等。该函数在图像处理和计算机视觉中广泛用于标注图像,添加信息或用于用户界面。



1. 函数定义

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
);

参数解析:

  1. img (InputOutputArray):目标图像(通常是彩色图像,也可以是灰度图像)。文本会在此图像上绘制,必须是可修改的(如 cv::Mat)。

  2. text (const String&):要绘制的文本内容,类型为字符串,可以是字母、数字等字符。

  3. org (Point):文本的起始点。Point(x, y) 表示文本的左下角(默认情况下),其中 xy 是坐标值,(0, 0) 为图像的左上角。

  4. fontFace (int):字体类型,OpenCV 提供了多种字体:

    • FONT_HERSHEY_SIMPLEX:常规大小的无衬线字体
    • FONT_HERSHEY_PLAIN:小字体,无衬线
    • FONT_HERSHEY_DUPLEX:更粗的无衬线字体
    • FONT_HERSHEY_COMPLEX:复杂字体
    • FONT_HERSHEY_TRIPLEX:三倍线条宽度
    • FONT_HERSHEY_COMPLEX_SMALL:小版本的复杂字体
    • FONT_HERSHEY_SCRIPT_SIMPLEX:简单手写体
    • FONT_HERSHEY_SCRIPT_COMPLEX:复杂手写体
  5. fontScale (double):字体的缩放因子。值越大,字体越大。例如,1.0 表示标准大小。

  6. color (Scalar):文本的颜色。Scalar(B, G, R) 设置颜色,其中 BGR 分别表示蓝色、绿色和红色的强度,范围是 [0, 255]

  7. thickness (int, 默认值=1):文本线条的粗细。默认是 1 像素,值越大,线条越粗。

  8. lineType (int, 默认值=LINE_8):文本轮廓的线条类型:

    • LINE_8:8连接线条(默认值)
    • LINE_4:4连接线条
    • LINE_AA:抗锯齿线条,适用于高质量显示
  9. bottomLeftOrigin (bool, 默认值=false):如果为 true,文本的起点在图像底部;如果为 false(默认),起点在图像顶部。该参数常用于需要倒置坐标的图像中。



2. 示例代码

以下代码展示了如何在图像上绘制文本:

#include <opencv2/opencv.hpp>

int main() {
    // 创建一个白色背景图像
    cv::Mat img = cv::Mat::ones(400, 800, CV_8UC3) * 255;

    // 文本内容
    std::string text = "Hello, OpenCV!";

    // 文本位置
    cv::Point org(50, 200);

    // 字体类型
    int fontFace = cv::FONT_HERSHEY_SIMPLEX;

    // 字体缩放
    double fontScale = 1.5;

    // 颜色 (红色)
    cv::Scalar color(0, 0, 255);

    // 线条粗细
    int thickness = 2;

    // 绘制文本
    cv::putText(img, text, org, fontFace, fontScale, color, thickness);

    // 显示图像
    cv::imshow("Image with Text", img);
    cv::waitKey(0);

    return 0;
}


3. 应用场景

  • 图像标注:标记目标区域或提供说明信息。
  • 调试:在图像上显示变量值或状态信息。
  • 用户界面:为图像添加说明文字或菜单。


4. 注意事项

  • putText 绘制的文本是直接渲染在图像上的,修改后不可撤销。
  • 如果图像较小或文字较大,建议使用抗锯齿 (LINE_AA) 提高文本显示效果。


标签:putText,FONT,int,HERSHEY,OpenCV,图像,文本,cv
From: https://www.cnblogs.com/keye/p/18517593

相关文章

  • OpenCV(cv::rectangle())
    目录1.函数定义2.示例代码3.应用场景4.注意事项cv::rectangle()是OpenCV提供的一个函数,用于在图像上绘制矩形。可以通过此函数指定矩形的位置、大小、颜色、边框粗细等,适合在图像处理中标记感兴趣区域(ROI)或绘制边框。以下是对cv::rectangle()的详细解析:1.函数定义......
  • OpenCV(cv::dnn::NMSBoxes())
    目录1.函数定义2.函数工作流程3.示例代码4.应用场景5.注意事项cv::dnn::NMSBoxes()是OpenCVDNN模块中用于非极大值抑制(Non-MaximumSuppression,NMS)的函数,常用于目标检测任务中,以去除重叠度较高的框,保留检测得分最高的框。cv::dnn::NMSBoxes()主要在检测过程中对多......
  • NVR设备ONVIF接入平台EasyCVR国标GB28181视频平台智能视频质量检测:自动化技术的革命性
    视频质量诊断技术是一种基于图像和视频处理的前沿技术,旨在评估和分析视频的质量,发现潜在问题并提供改进建议。该技术通过智能化的图像分析算法,对前端设备传回的视频流进行实时监测和诊断,确保视频监控系统能够持续提供高质量的监控画面。一、EasyCVR平台支持视频质量诊断NVR设备O......
  • 萤石私有化设备视频平台EasyCVR视频融合平台如何构建农业综合监控监管系统?
    现代农业的迅速发展中,集成监控管理系统已成为提高农业生产效率和优化管理的关键工具。萤石私有化设备视频平台EasyCVR,作为一个具有高度可扩展性、灵活的视频处理能力和便捷的部署方式的视频监控解决方案,为农业监控系统的建设提供了坚实的技术支持。该平台支持包括GB28181国家标......
  • OpenCV(cv::Mat::colRange())
    目录1.函数定义2.功能3.代码示例3.1选择第1列到第3列(列索引从0开始)3.2使用Range参数4.注意事项5.常见用途cv::Mat::colRange()是OpenCV中的一个函数,用于在矩阵中选择指定的列范围。这对于图像或数据矩阵处理时需要选择特定列的情况非常有用。1.函数定义colRan......
  • (ICCV2023)多尺度空间特征提取模块,有效涨点,即插即用
    题目:SAFMN:Spatially-AdaptiveFeatureModulationforEfficientImageSuper-Resolution期刊:CVPR(ConferenceonComputerVisionandPatternRecognition)GitHub地址:https://github.com/sunny2109/SAFMN年份:2023作者单位:TheChineseUniversityofHongKong(CUHK)......
  • OpenCV | 基于最细长轮廓自动校正旋转图片
    点击查看代码importcv2importnumpyasnpdefpreprocess_image(image):#转换为灰度图像gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)#高斯模糊去噪blurred=cv2.GaussianBlur(gray,(33,33),0)#自适应阈值二值化binary=cv2.a......
  • 使用 OpenCV 进行视频帧操作
    视频帧的基本操作是视频处理的基础,构建了图像分析和计算机视觉等高级应用的技术前提。通过OpenCV库,视频处理从视频加载、帧读取到窗口显示与帧保存的流程逐步展开,实现了对视频信息的逐帧获取和操作。在此基础上,引入了灰度转换、模糊处理和边缘检测等技术,提升了视频帧的处理......
  • OpenCV与AI深度学习 | 实战 | YOLO11自定义数据集训练实现缺陷检测 (标注+训练+预测
    本文来源公众号“OpenCV与AI深度学习”,仅用于学术分享,侵权删,干货满满。原文链接:实战|YOLO11自定义数据集训练实现缺陷检测(标注+训练+预测保姆级教程)导 读   本文将手把手教你用YOLO11训练自己的数据集并实现缺陷检测。安装环境YOLO11的介绍和使用这里不再赘......
  • 如何使用腾讯云CVM搭建出海电商平台
    引言:2024年已经有太多的企业开始了迈出国门,在出海贸易当中进行试水。但由于政策、文化等诸多方面的不同,更多的企业在做低成本的尝试,以避免一次性投入过大带来的损失。因此,越来越多的企业和个人,开始学习电商平台的相关知识,了解电商平台的相关业务,一些开发者们也开始通过了解开源......