×

OpenCV如何在图像上绘制出矩形并标出起点的坐标详细资料说明

消耗积分:0 | 格式:rar | 大小:0.03 MB | 2019-10-15

分享资料个

  涉及到两方面的内容:1. 用鼠标画出矩形。2.在图像上绘制出点的坐标

  1. 用鼠标绘制矩形,涉及到鼠标的操作,opencv中有鼠标事件的介绍。需要用到两个函数:回调函数CvMouseCallback和注册回调函数cvSetMouseCallback.

  当回调函数被调用时,opencv会传入合适的值,当鼠标有动作时,有所反应,比如画线,描点。

  void CvMouseCallback(int event,int x,int y,int flags,void * param);

 

  event 为鼠标事件类型,值为以下一种:CV_EVENT_MOUSEMOVE,CV_EVENT_LBUTTONDOWN,CV_EVENT_RBUTTONDOWN,CV_EVENT_MBUTTONDOWN,CV_EVENT_RBUTTONUP,CV_EVENT_LBUTTONUP,CV_EVENT_MBUTTONUP,CV_EVENT_LBUTTONBLCLK,CV_EVENT_RBUTTONBLCLK,CV_EVENT_MBUTTONBLCLK.

  x,y表示事件发生时鼠标位置的x,y坐标值。

  flags的值表示了别的键如ctrl,shift键是否被触发。

  Param可以以任何结构方式传递额外的参数信息。

  void cvSetMouseCallback(const char* window_name,CvMouseCallback on_mouse,void* param);

  第一个参数指定了回调函数需要注册到的窗口,也就是产生事件的窗口。第二个参数为回调函数,第三个参数用来传递额外信息给回调函数中的param参数。

  2. 在图像上绘出点的坐标涉及到opencv中的绘图中的字体和文字。主要有函数cvPutText和cvInitFont.

  void cvPutText(CvArr* img,const char* text,CvPoint origin,const CvFont* font,CvScalar clolor);

  这个函数可以在图像上输出一些文本。

  text所指向的文本将打印到图像上。若将点的坐标打印到图像上,就需要把点的坐标变成字符串,要用到sprintf函数。

  Origin为指定文本框的左下角位置。

  Void cvInitFont(CvFont* font,int font_face,double hscale,double vscale,double shear=0,int thinckness=1,int line_type=8);

  hscale和vscale表示字体的高度和宽度。Shear=0.0字体不倾斜,shear=1.0,字体倾斜。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !