原函数: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表示绘制线条的颜色
thickness表示线条的粗细程度,负数表示将其填充
line_type表示线条类型
shift表示做标点的小数点位数
例如:
//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"); }
结果:
原函数:void cvCircle(CvArr* img, CvPoint center,int radius,CvScalar color,int thickness=1 ,int line_type=8,int shift=0);
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!!
下面就是视频方面的部分了,继续继续!!!!