• opencv各种绘图 直线 矩形 圆 椭圆


    画图函数

    (1)直线cvLine函数

    其结构

    void cvLine(//画直线
      CvArr* array,//画布图像
      CvPoint pt1,//起始点
      CvPoint pt2,//终点
      CvScalar color,//颜色
      int thickness = 1,//宽度
      int connectivity = 8//反走样
    );
    实例代码
    #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函数

    其结构

    void cvRectangle(//画矩形
      CvArr* array,//画布图形
      CvPoint pt1,//起始点
      CvPoint pt2,//终点
      CvScalar color,//颜色
      int thickness = 1,//宽度
    );
    实例代码
    #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函数

    其结构

    void cvCircle(//画圆
      CvArr* array,//画布图像
      CvPoint cevter,//圆心
      int radius,//半径
      CvScalar color,//颜色
      int thickness = 1,//宽度
      int connectivity = 8//反走样
    );
    实例代码
    #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函数

    其结构

    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//
    );
    实例代码
    #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函数

    其结构

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

    其结构

    void cvFillConvexPoly(//画一个实心多边形
      CvArr* img,//画布图像
      CvPoint* pts,//点序列
      int npt,//计数点数组
      CvScalar color,//颜色
      int line_type = 8
    );
    3.cvPolyLine函数
    void cvFillPoly(//画多个空心多边形
      CvArr* img,//画布图像
      CvPoint** pts,//点序列
      int* npt,//计数点数组
      int contours,//显示几个多边形
      int is_closed,//是否从上个多边形尾点開始
      CvScalar color,//颜色
      int thickness = 1,//宽度
      int line_type = 8
    );
    实例代码
    #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函数

    其结构

    void cvPutText(//绘制文字
      CvArr* img,//画图图像
      const char* text,//文字内容
      CvPoint origin,//文字起始位置
      const CvFont* font,//文字字体设置
      CvScalar color//颜色
    );
    实例代码
    #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;
    }
    输出结果


    to be continued 

  • 相关阅读:
    配置WebLogic的详细步骤
    安装WebLogic的详细步骤
    syswrite 函数
    利用perl 改写awk统计
    第一章 输入和输出基础
    CIO必看:跨国集团采购部报表系统的建设经验分享
    价值5000元的web报表分享
    价值5000元的web报表分享
    分页语句 where 条件列和Order by 列 引导列的问题
    Java中final修饰参数的作用
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/7397589.html
Copyright © 2020-2023  润新知