1. 程式人生 > >《學習opencv》筆記——關於一些畫圖的函數

《學習opencv》筆記——關於一些畫圖的函數

pre close 角度 輸出結果 eight 畫圖 計數 tour cti


畫圖函數


(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





《學習opencv》筆記——關於一些畫圖的函數