OpenCV提供了一些基本的繪圖操作,比如畫圓,畫橢圓,畫線,畫矩形,在映像裡插入文字等功能。
畫圓使用的是circle函數,必須提供的參數是:畫在出的圓顯示在哪裡,圓心,半徑,以及畫線的顏色。
//圓心Point center = Point(255,255);//半徑int r = 100;//承載映像Mat picture(500,500,CV_8UC3,Scalar(255,255,255));//參數為:承載的映像、圓心、半徑、顏色、粗細、線型circle(picture,center,r,Scalar(0,0,0));imshow("底板",picture);
其中可以通過把線的粗細設定為-1來畫實心的圖形。
畫橢圓的使用的是ellipse函數,參數比較複雜:
//參數為:承載的映像、圓心、長短軸、徑向夾角(水平面到長軸的夾角)、起始角度(長軸到起始邊沿的夾角)、結束角度(長軸到結束點的夾角)、傾斜的矩形(可選項)、顏色、粗細、線性、位移ellipse(picture,center,Size( 250, 100 ),0,30,240,Scalar(0,0,0));
畫線使用line函數就簡單多了,只需要知道起點和終點就行了。
//畫線Point a = Point (600,600);//參數為:承載的映像、起始點、結束點、顏色、粗細、線型line(picture,a,center,Scalar(255,0,0));imshow("底板",picture);
只得注意的是,“畫板”是500*500的,而我把結束點設為了(600,600),這樣做的不會報錯,繪圖的結果是根據畫板的大小裁剪掉顯示不出來的部分。
畫矩形也比較簡單,使用rectangle,需要知道的左上和右下角(與cv::rect定義的矩形不一樣,rect是左上方點和矩形長寬)
//畫矩形//參數為:承載的映像、頂點、對角點、顏色(這裡是藍色)、粗細、大小rectangle(picture,a,center,Scalar(255,0,0));imshow("底板",picture);
如前所述,右下角在畫板外會使矩形顯示不全。
在映像裡插入文字使用putText函數:
//插入文字//參數為:承載的圖片,插入的文字,文字的位置(文字框左下角),字型,大小,顏色string words= "good luck";putText( picture, words, Point( picture.rows/2,picture.cols/4),CV_FONT_HERSHEY_COMPLEX, 1, Scalar(255, 0, 0) );imshow("底板",picture);
這裡文字為藍色,因為OpenCV中三彩色通道的順序是BGR而不是RGB。