OpenCV文字绘制函数putText()的使用
生活随笔
收集整理的這篇文章主要介紹了
OpenCV文字绘制函数putText()的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
OPenCV版本:4.4
IDE:VS2017
功能描述
簡述:在一個圖像里繪制文字。
函數 cv::putText在圖像里渲染指定的字符串. 符號不能被渲染,用問號來代替。參見 getTextSize 是一個文字渲染的代碼示例.
函數原型
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 )參數描述
-
參數 img 源圖。
-
參數 text 被畫的文字字符串。
-
參數 org 文字在畫面中左下角的坐標。
-
參數 fontFace 字符類型,參見 HersheyFonts。
-
參數 fontScale 字體比例因子,被字體指定的基礎大小所乘。
-
參數 color 文字顏色
-
參數 thickness 劃線的厚度
-
參數 lineType 劃線類型,參見 LineTypes
-
參數 bottomLeftOrigin 當是true的時候,圖像數據源在左下角,否則是在左上角
源碼示例
#include <iostream> #include <opencv2/opencv.hpp>int main() {cv::Mat image = cv::imread("D:\\OpenCVtest\\images\\juice.png");std::string text = "I am juice";int font_face = cv::FONT_HERSHEY_COMPLEX;double font_scale = 2;int thickness = 4;int baseline;//文本框的長寬cv::Size text_size = cv::getTextSize(text, font_face, font_scale, thickness, &baseline);//文本框居中繪制cv::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(255, 0, 0), thickness, 8, 0);imshow("文本繪制", image);cv::waitKey(0);return 0; }運行結果:
附注
字體類型:
enum HersheyFonts {FONT_HERSHEY_SIMPLEX = 0, //!< 常規大小 沒有襯線的字體FONT_HERSHEY_PLAIN = 1, //!< 小號 沒有襯線的字體FONT_HERSHEY_DUPLEX = 2, //!< 常規大小 復雜的沒有襯線的字體FONT_HERSHEY_COMPLEX = 3, //!< 常規大小 襯線字體FONT_HERSHEY_TRIPLEX = 4, //!< 常規大小 復雜的襯線字體FONT_HERSHEY_COMPLEX_SMALL = 5, //!< 小號 襯線字體FONT_HERSHEY_SCRIPT_SIMPLEX = 6, //!< 手寫風格的字體FONT_HERSHEY_SCRIPT_COMPLEX = 7, //!< 復雜的手寫風格的字體FONT_ITALIC = 16 //!< 斜體字體 };西方國家字母體系分為兩類:襯線字體(serif)和無襯線體(sans serif)。
襯線字體:字的筆畫開始、結束的地方有額外的裝飾,而且筆畫的粗細會有所不同。
無襯線體:是無襯線字體,沒有這些額外的裝飾,而且筆畫的粗細差不多。
中文字體中的宋體就是一種最標準的襯線字體,襯線的特征非常明顯。字形結構也和手寫的楷書一致。因此宋體一直被做為最適合的正文字體。
線型:
enum LineTypes {FILLED = -1,LINE_4 = 4, //!< 4-connected lineLINE_8 = 8, //!< 8-connected lineLINE_AA = 16 //!< antialiased line };值越大字體越圓滑
總結
以上是生活随笔為你收集整理的OpenCV文字绘制函数putText()的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CMake Error include
- 下一篇: OpenCV文字绘制支持中文显示