



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在图像上绘制出矩形并标出起点的坐标 涉及到两方面的内容: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_EVE NT_MBUTTONDOWN,CV_EVENT_RBUTTONUP,CV_EVENT_LBUTTONUP,CV_EVENT_MBUTTO NUP,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( box=cvRect(-1,-1,0,0); IplImage* image=cvLoadImage(“1.bmp“); coutwidthheight“*“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( cvReleaseImage( 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“ char s13
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年飞机驾驶证考试题库及答案
- 2025年架空乘人装置司机考试试题及答案
- 山东省郯城县红花镇九年级历史下册 第五单元 社会主义国家的改革与演变 11《东欧社会主义国家的改革与演变》说课稿3 新人教版
- 2025年新能源汽车智能座舱系统升级与用户体验报告
- 第20课 正面战场的抗战教学设计-2025-2026学年初中历史中国历史 第三册统编版(五四学制)
- 风电影子效应分析-洞察及研究
- 高位泡沫发生液合同模板(3篇)
- 安全证考试题及答案
- 高密自媒体推广合同模板(3篇)
- 农业贷款合同利息优惠及还款期限调整规范本
- 冰激凌原料采购合同范例
- 清洁生产简述与实例分析课件
- 《机器视觉技术及其应用》课件-模块1项目1 机器视觉技术简介
- 《抗心律失常药》课件
- 帕金森病患者吞咽障碍康复中国专家共识 2025版解读
- GB/T 45166-2024无损检测红外热成像检测总则
- 混合动力汽车试卷B
- 制鞋工艺流程
- 2025年高考作文备考:写好主体段增强阐释性
- 【MOOC】《研究生英语科技论文写作》(北京科技大学)中国大学MOOC慕课答案
- 人教版初中、高中英语全部单词集合
评论
0/150
提交评论