OpenCV中创建图像,在图像上画点(像素精度)

没有找到更精确的方法,Opencv中包括画椭圆,其中心的位置也是像素级的,怎么达到亚像素精度呢?

下面用画小圆圈的方法来画点,点的座标即为圆心,给定一个较小的半径,就可以用这个小圆圈表示点了。

画圆圈的函数:

 void cvCircle( CvArr* img, CvPoint center, int radius, CvScalar color, int thickness=1, int line_type=8, int shift=0 );
例子:
CvSize sz;//图像尺寸
 sz.height =600;
 sz.width = 800;
 image = cvCreateImage(sz,IPL_DEPTH_8U ,0);
  //存储图像 
 cvNamedWindow("image1",CV_WINDOW_AUTOSIZE);
 cvSaveImage("image1.jpg",image);
 //cvShowImage("image1",image);

//画30个点在图上,其中iamge_ellipse1是30*2的矩阵,包含了30个点的图像座标。 

for(int i=0;i<30;i++)
 {
  CvPoint   centerpoint;
  centerpoint.x=int(cvGetReal2D(image_ellipse1,i,0));
  centerpoint.y=int(cvGetReal2D(image_ellipse1,i,1));
  cvCircle( image, centerpoint ,3 , CV_RGB(0,255,0),1, 8, 3 );
 }

 cvNamedWindow("image1",CV_WINDOW_AUTOSIZE);
 cvSaveImage("image1.jpg",image);
 cvShowImage("image1",image);
 cvWaitKey(0);
 cvReleaseImage(&image);
 cvDestroyWindow("image1");

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章