您的位置:首页 > 运维架构

《学习opencv》笔记——关于一些绘图的函数

2014-06-08 01:04 267 查看
绘图函数

(1)直线cvLine函数

其结构

[cpp] view plaincopyprint?




void cvLine(//画直线 

    CvArr* array,//画布图像 
    CvPoint pt1,//起始点 

    CvPoint pt2,//终点 
    CvScalar color,//颜色 

    int thickness = 1,//宽度 

    int connectivity = 8//反走样 

); 

void cvLine(//画直线
CvArr* array,//画布图像
CvPoint pt1,//起始点
CvPoint pt2,//终点
CvScalar color,//颜色
int thickness = 1,//宽度
int connectivity = 8//反走样
);


实例代码

[cpp] view plaincopyprint?




#include <cv.h> 

#include <highgui.h> 
#include <stdio.h> 

 
int main(int argc,
char** argv) 

    IplImage *src1; 
    src1 = cvLoadImage("10.jpg"); 

     
    cvLine(src1,cvPoint(20,20),cvPoint(250,250),CV_RGB(255,0,0),8); 

 
    cvShowImage( "原图", src1); 

    cvWaitKey(); 
    return 0; 


#include <cv.h>
#include <highgui.h>
#include <stdio.h>

int main(int argc, char** argv)
{
IplImage *src1;
src1 = cvLoadImage("10.jpg");

cvLine(src1,cvPoint(20,20),cvPoint(250,250),CV_RGB(255,0,0),8);

cvShowImage( "原图", src1);
cvWaitKey();
return 0;
}


输出结果



(2)矩形cvRectangle函数

其结构

[cpp] view plaincopyprint?




void cvRectangle(//画矩形 

    CvArr* array,//画布图形 
    CvPoint pt1,//起始点 

    CvPoint pt2,//终点 
    CvScalar color,//颜色 

    int thickness = 1,//宽度 

); 

void cvRectangle(//画矩形
CvArr* array,//画布图形
CvPoint pt1,//起始点
CvPoint pt2,//终点
CvScalar color,//颜色
int thickness = 1,//宽度
);


实例代码

[cpp] view plaincopyprint?




#include <cv.h> 

#include <highgui.h> 
#include <stdio.h> 

 
int main(int argc,
char** argv) 

    IplImage *src1; 
    src1 = cvLoadImage("10.jpg"); 

     
    cvRectangle(src1,cvPoint(20,20),cvPoint(200,200),CV_RGB(0,255,0),8); 

 
    cvShowImage( "原图", src1); 

    cvWaitKey(); 
    return 0; 


#include <cv.h>
#include <highgui.h>
#include <stdio.h>

int main(int argc, char** argv)
{
IplImage *src1;
src1 = cvLoadImage("10.jpg");

cvRectangle(src1,cvPoint(20,20),cvPoint(200,200),CV_RGB(0,255,0),8);

cvShowImage( "原图", src1);
cvWaitKey();
return 0;
}


输出结果



(3)圆形cvCircle函数

其结构

[cpp] view plaincopyprint?




void cvCircle(//画圆 

    CvArr* array,//画布图像 
    CvPoint cevter,//圆心 

    int radius,//半径 

    CvScalar color,//颜色 

    int thickness = 1,//宽度 

    int connectivity = 8//反走样 

); 

void cvCircle(//画圆
CvArr* array,//画布图像
CvPoint cevter,//圆心
int radius,//半径
CvScalar color,//颜色
int thickness = 1,//宽度
int connectivity = 8//反走样
);


实例代码

[cpp] view plaincopyprint?




#include <cv.h> 

#include <highgui.h> 
#include <stdio.h> 

 
int main(int argc,
char** argv) 

    IplImage *src1; 
    src1 = cvLoadImage("10.jpg"); 

     
    cvCircle(src1,cvPoint(150,150),100,CV_RGB(0,0,255),5); 
 
    cvShowImage( "原图", src1); 

    cvWaitKey(); 
    return 0; 


#include <cv.h>
#include <highgui.h>
#include <stdio.h>

int main(int argc, char** argv)
{
IplImage *src1;
src1 = cvLoadImage("10.jpg");

cvCircle(src1,cvPoint(150,150),100,CV_RGB(0,0,255),5);

cvShowImage( "原图", src1);
cvWaitKey();
return 0;
}


输出结果



(4)椭圆cvEllipse函数

其结构

[cpp] view plaincopyprint?




void cvEllipse(//画椭圆 

    CvArr* img,//画布图像 
    CvPoint center,//中心点 

    CvSize axes,//长短轴 
    double angle,//偏离主轴角度 

    double start_angle,//弧线开始位置 

    double end_angle,//弧线结束位置 

    CvScalar color,//颜色 
    int thickness = 1,//宽度 

    int line_type = 8// 

); 

void cvEllipse(//画椭圆
CvArr* img,//画布图像
CvPoint center,//中心点
CvSize axes,//长短轴
double angle,//偏离主轴角度
double start_angle,//弧线开始位置
double end_angle,//弧线结束位置
CvScalar color,//颜色
int thickness = 1,//宽度
int line_type = 8//
);


实例代码

[cpp] view plaincopyprint?




#include <cv.h> 

#include <highgui.h> 
#include <stdio.h> 

 
int main(int argc,
char** argv) 

    IplImage *src1; 
    src1 = cvLoadImage("10.jpg"); 

     
    cvEllipse(src1,cvPoint(150,150),cvSize(150,50),45,0,360,CV_RGB(255,0,0),3); 

 
    cvShowImage( "原图", src1); 

    cvWaitKey(); 
    return 0; 


#include <cv.h>
#include <highgui.h>
#include <stdio.h>

int main(int argc, char** argv)
{
IplImage *src1;
src1 = cvLoadImage("10.jpg");

cvEllipse(src1,cvPoint(150,150),cvSize(150,50),45,0,360,CV_RGB(255,0,0),3);

cvShowImage( "原图", src1);
cvWaitKey();
return 0;
}


输出结果



(5)多边形函数

1.cvFillPoly函数

其结构

[cpp] view plaincopyprint?




void cvFillPoly(//画多个实心多边形 

    CvArr* img,//画布图像 
    CvPoint** pts,//点序列 

    int* npt,//计数点数组 

    int contours,//显示几个多边形 

    CvScalar color,//颜色 
    int line_type = 8 

); 

void cvFillPoly(//画多个实心多边形
CvArr* img,//画布图像
CvPoint** pts,//点序列
int* npt,//计数点数组
int contours,//显示几个多边形
CvScalar color,//颜色
int line_type = 8
);


2.cvFillConvexPoly函数

其结构

[cpp] view plaincopyprint?




void cvFillConvexPoly(//画一个实心多边形 

    CvArr* img,//画布图像 
    CvPoint* pts,//点序列 

    int npt,//计数点数组 

    CvScalar color,//颜色 

    int line_type = 8 
); 

void cvFillConvexPoly(//画一个实心多边形
CvArr* img,//画布图像
CvPoint* pts,//点序列
int npt,//计数点数组
CvScalar color,//颜色
int line_type = 8
);


3.cvPolyLine函数

[cpp] view plaincopyprint?




void cvFillPoly(//画多个空心多边形 

    CvArr* img,//画布图像 
    CvPoint** pts,//点序列 

    int* npt,//计数点数组 

    int contours,//显示几个多边形 

    int is_closed,//是否从上个多边形尾点开始 

    CvScalar color,//颜色 

    int thickness = 1,//宽度 

    int line_type = 8 

); 

void cvFillPoly(//画多个空心多边形
CvArr* img,//画布图像
CvPoint** pts,//点序列
int* npt,//计数点数组
int contours,//显示几个多边形
int is_closed,//是否从上个多边形尾点开始
CvScalar color,//颜色
int thickness = 1,//宽度
int line_type = 8
);


实例代码

[cpp] view plaincopyprint?




#include <cv.h> 

#include <highgui.h> 
#include <stdio.h> 

 
int main(int argc,
char** argv) 

    IplImage *src1,*src2,*src3; 
    src1 = cvLoadImage("7.jpg"); 

    src2 = cvLoadImage("8.jpg"); 

    src3 = cvLoadImage("9.jpg"); 

 
    int arr[3]= {4,4,4};    

 
    CvPoint ** pt =new CvPoint*[3]; 

 
    pt[0] = new CvPoint[4];   

    pt[0][0] = cvPoint(10,10);   
    pt[0][1] = cvPoint(210,10);   
    pt[0][2] = cvPoint(210,210);   
    pt[0][3] = cvPoint(10,210);   
    pt[1] = new CvPoint[4];  

    pt[1][0] = cvPoint(10,310);   
    pt[1][1] = cvPoint(210,310);   
    pt[1][2] = cvPoint(210,510);   
    pt[1][3] = cvPoint(10,510);   
    pt[2] = new CvPoint[4];  

    pt[2][0] = cvPoint(310,10);   
    pt[2][1] = cvPoint(410,10);   
    pt[2][2] = cvPoint(410,210);   
    pt[2][3] = cvPoint(310,210);   
 
    cvPolyLine(src1, pt, arr, 3, 1, CV_RGB(0,255,0),5);   
 
    cvFillPoly(src2, pt,arr,3,CV_RGB(250,0,0));   
 
    cvFillConvexPoly(src3,pt[0],4,CV_RGB(0,0,255)); 
 
    cvShowImage( "原图1", src1); 

    cvShowImage( "原图2", src2); 

    cvShowImage( "原图3", src3); 

    cvWaitKey(); 
    return 0; 


#include <cv.h>
#include <highgui.h>
#include <stdio.h>

int main(int argc, char** argv)
{
IplImage *src1,*src2,*src3;
src1 = cvLoadImage("7.jpg");
src2 = cvLoadImage("8.jpg");
src3 = cvLoadImage("9.jpg");

int arr[3]= {4,4,4};

CvPoint ** pt =new CvPoint*[3];

pt[0] = new CvPoint[4];
pt[0][0] = cvPoint(10,10);
pt[0][1] = cvPoint(210,10);
pt[0][2] = cvPoint(210,210);
pt[0][3] = cvPoint(10,210);
pt[1] = new CvPoint[4];
pt[1][0] = cvPoint(10,310);
pt[1][1] = cvPoint(210,310);
pt[1][2] = cvPoint(210,510);
pt[1][3] = cvPoint(10,510);
pt[2] = new CvPoint[4];
pt[2][0] = cvPoint(310,10);
pt[2][1] = cvPoint(410,10);
pt[2][2] = cvPoint(410,210);
pt[2][3] = cvPoint(310,210);

cvPolyLine(src1, pt, arr, 3, 1, CV_RGB(0,255,0),5);

cvFillPoly(src2, pt,arr,3,CV_RGB(250,0,0));

cvFillConvexPoly(src3,pt[0],4,CV_RGB(0,0,255));

cvShowImage( "原图1", src1);
cvShowImage( "原图2", src2);
cvShowImage( "原图3", src3);
cvWaitKey();
return 0;
}


输出结果



(6)绘制文字cvPutText函数

其结构

[cpp] view plaincopyprint?




void cvPutText(//绘制文字 

    CvArr* img,//绘图图像 
    const char* text,//文字内容 

    CvPoint origin,//文字起始位置 

    const CvFont* font,//文字字体设置 

    CvScalar color//颜色 
); 

void cvPutText(//绘制文字
CvArr* img,//绘图图像
const char* text,//文字内容
CvPoint origin,//文字起始位置
const CvFont* font,//文字字体设置
CvScalar color//颜色
);


实例代码

[cpp] view plaincopyprint?




#include <cv.h> 

#include <highgui.h> 
#include <stdio.h> 

 
int main(int argc,
char** argv) 

    IplImage *src1,*src2,*src3; 
    src1 = cvLoadImage("10.jpg"); 

 
    char* str = "I am a student!"; 

 
    CvFont* cf = new CvFont(); 

 
    cvInitFont(cf,CV_FONT_HERSHEY_SIMPLEX,1.0,0.5); 
 
    cvPutText(src1,str,cvPoint(50,100),cf,CV_RGB(255,0,0)); 
 
    cvShowImage( "原图1", src1); 

    cvWaitKey(); 
    return 0; 


#include <cv.h>
#include <highgui.h>
#include <stdio.h>

int main(int argc, char** argv)
{
IplImage *src1,*src2,*src3;
src1 = cvLoadImage("10.jpg");

char* str = "I am a student!";

CvFont* cf = new CvFont();

cvInitFont(cf,CV_FONT_HERSHEY_SIMPLEX,1.0,0.5);

cvPutText(src1,str,cvPoint(50,100),cf,CV_RGB(255,0,0));

cvShowImage( "原图1", src1);
cvWaitKey();
return 0;
}


输出结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: