opencv中的cvInitFont()、cvPutText()、getTextSize()、putText()函数用法

  1. void cvInitFont( CvFont* font, int font_face, double hscale,
                     double vscale, double shear=0,
                     int thickness=1, int line_type=8 );
  2. 初始化字体结构-cvInitFont

    cvInitFont初始化字体结构体,字体结构体可以被传递到文字显示函数中。

    函数原型:

    void cvInitFont( CvFont* font, //被初始化的字体结构体

    int font_face, //字体名称标识符

    double hscale,//字体宽度

    double vscale, //字体高度

    double shear=0,//字体斜度

    int thickness=1, //字体笔划的粗细程度

    int line_type=8 ); //字体笔划的类型

    参数:

    hscale:字体宽度。如果等于1.0f,字符的宽度是最初的字体宽度。如果等于0.5f,字符的宽度是最初的字体宽度的一半。

    vscale:字体高度。如果等于1.0f,字符的高度是最初的字体高度。如果等于0.5f,字符的高度是最初的字体高度的一半。

    shear:字体的斜度。当值为0时 ,字符不倾斜;当值为1.0f时,字体倾斜≈45度,等等。厚度让字母着重显示。函数cvLine用于绘制字母。

    thickness:字体笔划的粗细程度。

    line_type:字体笔划的类型。

    OpenCV:在图像上显示文本信息

  3. 2

    cvPutText():使用给定的字体和颜色在图像上显示文本字符串

    这些显示的文本由感兴趣矩形包围着。

    函数原型:

    void cvPutText( 

    CvArr* img,//待绘制图像

    const char* text,//显示的字符串

    CvPoint org,//第一个字母左下角的坐标

    const CvFont* font,//指向字体结构的指针

    CvScalar color );//文本的颜色.

    OpenCV:在图像上显示文本信息

  4. 3

    结合cvInitFont和cvPutText在图像上显示文本的方法:

    #include <opencv2\opencv.hpp>

    #include <opencv2\highgui\highgui.hpp>

    #include <opencv2\core\core.hpp>

    using namespace std; 

    using namespace cv; 

    int main(){

    IplImage* OriginImage=cvLoadImage("raw.jpg",1);

    CvFont font;

    cvInitFont(&font,CV_FONT_HERSHEY_COMPLEX,1.0,1.0,0,2,8);

    cvPutText(

    OriginImage,

    "Hello every one!",

     cvPoint(OriginImage->width/2-100,OriginImage->height/2),

    &font,

    cvScalar(255,0,0));

    cvShowImage("show",OriginImage);

    cvWaitKey(0);

    return 0;}

    OpenCV:在图像上显示文本信息

    OpenCV:在图像上显示文本信息

  5. 4

    getTextSize():获取待绘制文本框的大小,以方便放置文本框

    函数原型:

    Size getTextSize( 

    const string& text, //带设置的字符串文本

    Point origin, //文本框左下角

    int fontFace, //字符串字体

    double fontScale, 

    int thickness, //字体笔划的粗细程度

    int* baseLine 

    );  

    OpenCV:在图像上显示文本信息

  6. 5

    putText():在图像中绘制文本信息

    函数原型:

    void putText( 

    Mat& img, // 待绘制的图像 

    const string& text, // 待绘制的文字 

    Point origin, // 文本框的左下角 

    int fontFace, // 字体 (如cv::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' 

    );  

    OpenCV:在图像上显示文本信息

  7. 6

    getTextSize()和putText()结合的应用:

    程序:

    int main()

    {

           //创建空白图用于绘制文字 

           Mat image = cv::Mat::zeros(cv::Size(640, 480), CV_8UC3); 

           //设置蓝色背景 

           image.setTo(cv::Scalar(100, 0, 0)); 

           //设置绘制文本的相关参数 

           string text = "Hello World!"; 

           int font_face = cv::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, cv::Scalar(0, 255, 255), thickness, 8, 0); 

           //显示绘制解果 

           imshow("image", image); 

           waitKey(0); 

           return 0; 

    }

    OpenCV:在图像上显示文本信息

    OpenCV:在图像上显示文本信息

    END

注意事项

发布了34 篇原创文章 · 获赞 26 · 访问量 7630

猜你喜欢

转载自blog.csdn.net/HHT0506/article/details/94407316
今日推荐