全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在图像上绘制出矩形并标出起点的坐标涉及到两方面的内容: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,字体倾斜。Opencv程序和结果如下所示。#include #include #include #include using namespace std;void my_mouse_callback(int event,int x,int y,int flags,void* param);CvRect box;bool drawing_box=false;void draw_box(IplImage* img,CvRect rect)cvRectangle(img,cvPoint(box.x,box.y),cvPoint(box.x+box.width,box.y+box.height),cvScalar(0x00,0x00,0xff);CvFont font;int main()cvInitFont(&font,CV_FONT_HERSHEY_SIMPLEX,0.4,0.4,0,1,8);box=cvRect(-1,-1,0,0);IplImage* image=cvLoadImage(1.bmp);cout*width height*endl;/cvZero(image);IplImage* temp=cvCloneImage(image);cvNamedWindow(Box Example);cvSetMouseCallback(Box Example,my_mouse_callback,(void*)image);while(1)cvCopy(image,temp);if(drawing_box) draw_box(temp,box);cvShowImage(Box Example,temp);if(cvWaitKey(30)=27) break;cvSaveImage(temp.jpg,temp);cvReleaseImage(&image);cvReleaseImage(&temp);cvDestroyWindow(Box Example);return 0;void my_mouse_callback(int event,int x,int y,int flags,void* param)IplImage* image=(IplImage*)param;switch(event)case CV_EVENT_MOUSEMOVE:if(drawing_box)box.width=x-box.x;box.height=y-box.y;break;case CV_EVENT_LBUTTONDOWN:drawing_box=true;box=cvRect(x,y,0,0);coutbox.x box.yendl;break;case CV_EVENT_LBUTTONUP:drawing_box=false;draw_box(image,box);coutbox.x box.y&box.width box.heightendl;char s132;char s232;s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 品酒会举办协议书
- 什么是顿巴斯协议书
- 中索安保协议书
- 2025年RCEP项下玻璃制品原产地规则应用考核试卷
- 储罐产权安全协议书
- 国际商事诉讼中的证据开示程序实务考核试卷
- 2025年绿色发展低碳建筑材料应用考核试卷
- 2025年物业管理服务规范资格考试(80卷)考核试卷
- 2025年量子计算在水下机器人技术中的应用考核试卷
- 2025年乡村医生《国家基本公共卫生服务规范》老年人健康管理新增指标应用考核试卷
- 园区物业服务方案(3篇)
- 新解读《DZ-T 0130.11 - 2006地质矿产实验室测试质量管理规范 第11部分:岩石物理力学性质试验》新解读
- 工程代签免责协议书
- 承接查验委托协议书
- 快艇买卖合同协议书
- 年产200吨高纯金属铯铷项目报告书
- 导弹基本知识
- 2025年度租赁车辆租赁合同附件四:维修保养记录
- 采血后预防淤青的按压方式
- 国企中层领导竞聘笔试题
- 《AI公文写作范例大全:格式、要点与技巧》课件 第5、6章 AI公文写作的方法、AI写作工具的测评
评论
0/150
提交评论