图像处理---《在图片上打印文字 putText()》

图像处理---《在图片上打印文字 putText()》

目的:想在处理之后的图像上打印输出结果。

方法: (1)只在图像上打印 数字、字母的话:
                  1.Mat格式的图像,可以使用opencv自带的putText()。
                  2.IPLImage格式的图像,可以使用自带的cvInitFont和cvPutText函数。
       (2)在图像上打印 汉字的话,可以使用FreeType库。
                  FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件。

/*
作者:WP @20190626
功能:opencv在图片中写入文字
说明:
    (1)只在图像上打印 数字、字母的话:
            1.Mat格式的图像,可以使用opencv自带的putText。
            2.IPLImage格式的图像,可以使用自带的cvInitFont和cvPutText函数。
    (2)在图像上打印 汉字的话,可以使用FreeType库。
            FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件。
*/
#include <iostream>
#include "opencv2/opencv.hpp"

using namespace std;
using namespace cv;

//--------------------------------Mat格式的图像,可以使用opencv自带的putText()函数---------------------------------------
int main( )
{
    //Mat image = Mat::zeros(Size(640, 480), CV_8UC3);            // 创建空白图用于绘制文字
    //image.setTo(Scalar(100, 0, 0));        //设置蓝色背景
    Mat image = imread("D:\\005_test_4\\testImg\\road_6.png",1);    // 最后显示,1---原图,0---灰度图

    //设置绘制文本的相关参数
    string text = "JILIN UNIVERSITY";
    int font_face = FONT_HERSHEY_COMPLEX; 
    double font_scale = 2;
    int thickness = 2;
    int baseline;
    //获取文本框的长宽
    Size text_size = getTextSize(text, font_face, font_scale, thickness, &baseline);

    //将文本框居中绘制
    Point origin; 
    origin.x = image.cols / 2 - text_size.width / 2;
    origin.y = image.rows / 2 + text_size.height / 2;
    putText(image, text, origin, font_face, font_scale, Scalar(0, 255, 255), thickness, 8, 0);
    putText(image, "This image is clear.", Point(50, 100), FONT_HERSHEY_SIMPLEX, 1, Scalar(0,0,255), 4, 8);

    //显示绘制结果
    imshow("image", image);
    waitKey(0);
    return 0;
}

转载于:https://www.cnblogs.com/carle-09/p/11093110.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值