学习OpenCV第四章第五题答案
来源:互联网 发布:从python开始学编程 编辑:程序博客网 时间:2024/06/10 08:31
本答案只实现了画矩形和点击右键实现橡皮擦功能,其他画椭圆画元的功能和画矩形一样,自己实现吧!
// learningOpenCV_4_5.cpp : 定义控制台应用程序的入口点。//CvRect box;bool t=0,z=0;CvPoint pt[2];void my_mouse_callback(int event,int x,int y,int flags,void *prarm); void draw_box(IplImage* image,CvRect box);void draw_line(IplImage* image,CvPoint* p);void erase(IplImage* image ,CvRect box);int _tmain(int argc, _TCHAR* argv[]){IplImage* image=cvCreateImage(cvSize(500,500),IPL_DEPTH_8U,3);IplImage* copyimg=cvCreateImage(cvSize(500,500),IPL_DEPTH_8U,3);cvZero(image);cvNamedWindow("show");cvSetMouseCallback("show",my_mouse_callback,(void*)image);while(1){cvCopy(image,copyimg);if(t==1)draw_box(copyimg,box);if(z==1)erase(copyimg ,box);cvShowImage("show",copyimg);char c=cvWaitKey(33);if(c==27)break;}cvShowImage("show",image);cvWaitKey(0);return 0;}void my_mouse_callback(int event,int x,int y,int flags,void *prarm){IplImage* image=(IplImage*)prarm;switch(event){case CV_EVENT_MOUSEMOVE:{if(t==1){box.width=x-box.x;box.height=y-box.y;}};break;case CV_EVENT_LBUTTONDOWN:{t=true;box=cvRect(x,y,0,0);};break;case CV_EVENT_LBUTTONUP:{t=false;draw_box(image,box);};break;case CV_EVENT_RBUTTONDOWN:{ z=1;box=cvRect(0,0,0,0);box=cvRect(x,y,x+20,y+20);};break;case CV_EVENT_RBUTTONUP:{z=0;erase(image ,box);};break;}}void draw_box(IplImage* image,CvRect box){cvRectangle(image,cvPoint(box.x,box.y),cvPoint(box.x+box.width,box.y+box.height),CV_RGB(255,0,0));cvShowImage("show",image);}void draw_line(IplImage* image,CvPoint* p){cvLine(image,(*p),*(p+1),CV_RGB(0,0,0),20);cvShowImage("show",image);}void erase(IplImage* image ,CvRect box){for(int i=box.y;i<box.height;i++){for(int j=box.x;j<box.width;j++){char *ptr=(char*)(image->imageData+i*image->widthStep)+j*3;*ptr=0;*(ptr+1)=0;*(ptr+2)=0;}}}
0 0
- 学习OpenCV第四章第五题答案
- 学习OpenCV第四章第四题答案
- 学习OpenCV第四章第一题答案
- 学习OpenCV第四章第二题答案
- 《学习opencv》第四章第五题
- 学习openCV第四章答案
- 学习opencv 习题答案-第五章
- 学习opencv第四章第三题A答案
- 学习opencv 习题答案-第四章
- 《学习OpenCV》练习题第四章第五题a
- opencv学习(五)书本《学习Opencv》(中文版)第四章的作业答案第一题(opencv3.0.0+VS2012+win7)
- opencv学习(六)书本《学习Opencv》(中文版)第四章的作业答案第二题(opencv3.0.0+VS2012+win7)
- 《学习OpenCV》练习题第四章第四题
- 《学习opencv》第四章第四题
- 思科CCNA第四学期第五章答案
- c++ primer(第五版)学习笔记及习题答案代码版(第四章)表达式
- 数学形态学图像处理——图像腐蚀,膨胀,开闭运算(《学习OpenCV》练习题第五章第四题)
- 第四章第五题
- 7.7位操作
- 如何把SourceAnywhere打造成免费SVN服务器
- GitHub 的安装与配置,包括可视化工具Tortosie
- ZOJ 3792 最小割+求割边
- HDU3549
- 学习OpenCV第四章第五题答案
- 火爆新东西,仿QQ版本的ResideMenuItem框架(最新QQ版本的)
- MFC多国语言——配置文件
- Hessian入门(与Spring集成)
- 网站运营:分享一些垂直社区的运营技巧
- 数列求和
- C++实现文件关联
- Socket网络编程笔记(三)
- 详解C/C++中的typedef和#define