原函數:void cvRectangle(CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness=1, int line_type=8,int shift=0) 數組
img就是須要繪製的圖像 函數
pt1 and pt2表示矩形的對角線上的兩個點 字體
color表示繪製線條的顏色 spa
thickness表示線條的粗細程度,負數表示將其填充 指針
line_type表示線條類型 code
shift表示作標點的小數點位數 視頻
例如: ci
//Rectangle int main(){ IplImage* img_temp = cvCreateImage(cvSize(500,500),IPL_DEPTH_8U,3); //繪製三個矩形 cvRectangle(img_temp,cvPoint(10,10),cvPoint(300,300),CV_RGB(255,255,255),8,8,1); cvRectangle(img_temp,cvPoint(350,350),cvPoint(500,500),CV_RGB(111,111,111),-1,3,1);//填充 cvRectangle(img_temp,cvPoint(550,550),cvPoint(620,620),CV_RGB(100,20,95),1,1,1); cvNamedWindow("Rectangle",1); cvShowImage("Rectangle",img_temp); cvWaitKey(0); cvReleaseImage(&img_temp); cvDestroyWindow("Rectangle"); }
結果: it
原函數:void cvCircle(CvArr* img, CvPoint center,int radius,CvScalar color,int thickness=1 ,int line_type=8,int shift=0); class
center爲圓心座標
radius爲半徑
其餘參數參照矩形函數
例子:
void circle(){ IplImage* img = cvCreateImage(cvSize(500,500),IPL_DEPTH_8U,3); cvCircle(img,cvPoint(250,250),200,CV_RGB(100,20,95),1,8,1); cvCircle(img,cvPoint(250,250),100,CV_RGB(100,20,95),-1,8,1);//填充 cvCircle(img,cvPoint(250,250),50,CV_RGB(100,111,111),-1,8,1); cvNamedWindow("Circle",1); cvShowImage("Circle",img); }結果:
原函數:void cvLine(CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness=1,int line_type=8, int shift=0);
pt1 and pt2 表示線的兩端
其餘參數見上面的說明
例子:
void line(){ IplImage* img = cvCreateImage(cvSize(500,500),IPL_DEPTH_8U,3); cvLine(img,cvPoint(100,250),cvPoint(400,250),CV_RGB(111,12,200),1,8,1); cvLine(img,cvPoint(250,100),cvPoint(250,400),CV_RGB(111,12,200),2,8,1); cvLine(img,cvPoint(100,100),cvPoint(400,400),CV_RGB(111,12,200),3,8,1); cvLine(img,cvPoint(400,100),cvPoint(100,400),CV_RGB(111,12,200),4,8,1); cvNamedWindow("Line",1); cvShowImage("Line",img); }結果:
原函數:void cvPolyLine(CvArr* img, CvPoint** pts, int* npts, int contours, int is_closed, CvScalar color, int thickness=1, int line_typw=8, int shift=0);
pts 表示折線的頂點指針數組。
npts表示折線的定點個數數組。也能夠認爲是pts指針數組的大小
contours表示折線的線段數量。
is_closed 圖形是否封閉
其餘參數參照上面
例子:
void poly(){ IplImage* img = cvCreateImage(cvSize(500,500),IPL_DEPTH_8U,3); CvPoint curve_1[] = {10,10, 30,730, 750,730, 730,10, 400,400}; CvPoint curve_2[] = {20,20, 20,100, 200,100}; CvPoint* curveArr[2] = {curve_1,curve_2}; int nCurvePts[2] = {5,3}; int nCurves = 2;//兩個圖形 int isCurveClosed = 1; //兩個封閉的多邊形 cvPolyLine(img,curveArr,nCurvePts,nCurves,isCurveClosed,CV_RGB(100,0,200),1,8,1); cvNamedWindow("poly",1); cvShowImage("poly",img); }結果:
原函數:void cvInitFont(CvFont* font, int font_face,double hscale, double vscale,double shear=0,int thickness=1,int line_type=8);
font字體結構體
font_face表示字體名稱ID
hscale表示字體寬度
vscale表示字體高度。
shear表示字體的斜度。當值爲0時 ,字符不傾斜;當值爲1.0f時,字體傾斜大約45度
字體識別碼:
CV_FONT_HERSHEY_SIMPLEX - 正常大小無襯線字體。
CV_FONT_HERSHEY_PLAIN - 小號無襯線字體。
CV_FONT_HERSHEY_DUPLEX - 正常大小無襯線字體。
CV_FONT_HERSHEY_COMPLEX - 正常大小有襯線字體。
CV_FONT_HERSHEY_TRIPLEX - 正常大小有襯線字體
CV_FONT_HERSHEY_COMPLEX_SMALL - CV_FONT_HERSHEY_COMPLEX 的小譯本。
CV_FONT_HERSHEY_SCRIPT_SIMPLEX - 手寫風格字體
例子:
void put_text(){ IplImage* img = cvCreateImage(cvSize(500,500),IPL_DEPTH_8U,3); CvFont font; cvInitFont(&font,CV_FONT_HERSHEY_SIMPLEX|CV_FONT_ITALIC,1.0,1.0,0,1,8); cvPutText(img,"Test Test",cvPoint(100,100),&font,CV_RGB(100,111,200)); cvNamedWindow("put_text",1); cvShowImage("put_text",img); }結果:
That's all!!
下面就是視頻方面的部分了,繼續繼續!!!!