C++ 在圖片上列印文字並儲存圖片
阿新 • • 發佈:2019-02-10
int score_record(IplImage* image, string scoreNum, float score ) { CvFont font; //傳值給cvPutText()的CvFont double hscale = 0.5; //字型寬度。如果等於1.0f,字元的寬度是最初的字型寬度。如果等於0.5f,字元的寬度是最初的字型寬度的一半。 double vscale = 0.5; //字型高度。如果等於1.0f,字元的高度是最初的字型高度。如果等於0.5f,字元的高度是最初的字型高度的一半。 int linewidth = 1; //字型筆劃的粗細程度。 cvInitFont(&font,CV_FONT_HERSHEY_SIMPLEX | CV_FONT_ITALIC,hscale,vscale,0,linewidth); //初始化字型結構體,字型結構體可以被傳遞到文字顯示函式中 CvScalar textColor =cvScalar(0,255,255); //文字顏色 CvPoint textPos = cvPoint(0, 50); //文字列印位置,第一個字元左下角的座標。 char text[500]; //列印文字內容,只能是char *格式,不能使用string sprintf(text,"%s %.4f", scoreNum.c_str(), score); //將要列印的資訊存入text IplImage* image_backup = cvCloneImage(image); //因為要在圖片上列印資訊,所以先將圖片備份 cvPutText(image_backup, text, textPos, &font,textColor); //在影象中顯示文字字串。 //儲存圖片 char window_Name[500]; //圖片名稱 sprintf(window_Name,"%.4f.jpg", score); //以score值命名圖片 cvSaveImage(window_Name,image_backup); return 0; }
參考: