歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 利用OpenCV在圖片上書寫英文

利用OpenCV在圖片上書寫英文

日期:2017/3/1 10:21:17   编辑:Linux編程

利用OpenCV進行英文字符串的書寫是很容易的。只需要調用cvPutText()函數即可。該函數的申明如下所示:
cvPutText(CvArr* img, const char* text, CvPoint origin, const CvFont* font, CvScalar color);函數中各個參數的含義如下所示:

img---圖片指針(需要說明的是,CvArr* 等價於void*,一般我們在這裡傳遞一個IplImage*);

text---顯然是需要打印到圖片上的字符串的內容;

origin---字符串在圖片上打印的原點(即,字符串的左下角在圖片中的位置)

font---描述字體屬性的變量;

color---字體的顏色;

上面函數中出現了一個較為生僻的變量CvFont*,從名稱不難發現,該類型用於進行字符屬性的描述;需要刻意提醒的是,CvFont類型的指針並不能像CvMat或IplImage類型的指針那樣,存在一個cvCreate**之類的函數對其進行初始化。CvFont類型變量的初始化是通過函數cvInitFont來實現的;該函數的申明如下所示:

void cvInitFont(CvFont* font, int font_face, double h_scale, double v_scale, double shear=0, int thickness=1, int line_type=8);

該函數中各個變量的含義如下所示:

font---傳入及傳出的字體屬性類型指針;

font_face---表示字體的類型,其取值只能為以下數值之一:

1. CV_FONT_HERSHEY_SIMPLEX

2. CV_FONT_HERSHEY_PLAIN

3. CV_FONT_HERSHEY_DUPLEX

4. CV_FONT_HERSHEY_COMPLEX

5. CV_FONT_HERSHEY_TRIPLEX

6. CV_FONT_HERSHEY_COMPLEX_SMALL

7. CV_FONT_HERSHEY_SCRIPT_SIMPLEX

8. CV_FONT_HERSHEY_SCRIPT_COMPLEX

h_scale---只能為1或0.5,表示水平方向字體的縮放系數;

v_scale---只能為1或0.5,表示垂直方向字體的縮放系數;

shear---取值從0---1,表示字體的傾斜程度,0表示不傾斜,1表示傾斜45度;

thichness, line_type這兩個參數同OpenCV的其它繪圖函數中定義的一樣,表示線型的寬度和線條的類型;

這裡,不妨給出一段參考代碼,來舉例說明上述兩個函數的用法;

  1. #include "stdafx.h"
  2. #include "cv.h"
  3. #include "highgui.h"
  4. #include "iostream"
  5. using namespace std;
  6. int _tmain(int argc, _TCHAR* argv[])
  7. {
  8. IplImage* pImg = cvLoadImage("c:/test.jpg");
  9. if (!pImg)
  10. {
  11. cout<<"pImg load error..."<<endl;
  12. system("pause");
  13. exit(-1);
  14. }
  15. CvFont font;
  16. cvInitFont(&font, CV_FONT_HERSHEY_COMPLEX, 1.0, 1.0, 0, 2, 8);
  17. cvPutText(pImg, "Hello, Chen Lee!", cvPoint(250, 250), &font, CV_RGB(255,0,0));
  18. cvSaveImage("c:/res.jpg", pImg);
  19. cvNamedWindow("img", 0);
  20. cvShowImage("img", pImg);
  21. cvWaitKey(0);
  22. system("pause");
  23. cvReleaseImage(&pImg);
  24. cvDestroyAllWindows();
  25. return 0;
  26. }

原圖

運行結果

Copyright © Linux教程網 All Rights Reserved