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");

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