初学opencv
来源:互联网 发布:mac版的千牛可以多开吗 编辑:程序博客网 时间:2024/04/30 13:56
CvRect box;void cv_mouse_callback(int event,int x,int y,int flags,void*param);bool drawing_box=false;//当点击左键时设置为true,表示要进行画方框void draw_box(IplImage*image,CvRect rect){cvRectangle(image,cvPoint(box.x,box.y),cvPoint(box.x+box.width,box.y+box.height),cvScalar(0xff,0x00,0x00));}int main(int argc,char** argv){box=cvRect(-1,-1,0,0);IplImage*image=cvCreateImage(cvSize(300,300),IPL_DEPTH_8U,3);cvZero(image);//新建图像并进行初始化IplImage*temp=cvCloneImage(image);//相当于创建和image大小一样的图像cvNamedWindow("Box Window");cvSetMouseCallback("Box Window",cv_mouse_callback,image);//注册鼠标事件while(1){//循环的意思是可以进行多次画方框cvCopyImage(image,temp);if(drawing_box)draw_box(temp,box);//当按下鼠标左键时,标识drawing_box为true,可以在图像temp上画矩形cvShowImage("Box Window",temp);if(cvWaitKey(15)==27)break;}}void cv_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); }break;case CV_EVENT_LBUTTONUP:{//左键松开drawing_box=false;if(box.height<0&&box.width<0){box.x+=box.width;box.y+=box.height;box.height*=-1;box.width*=-1;}else if(box.height<0){box.y+=box.height;box.height*=-1;}else if(box.width<0){box.x+=box.width;box.width*=-1;}draw_box(image,box);}break;}}
0 0
- opencv初学
- 初学opencv
- 初学opencv
- opencv初学
- opencv初学(一)
- OpenCV 初学杂记
- 初学OpenCV札记
- 初学opencv(一)
- 初学opencv-图像金字塔
- 初学opencv-阈值化
- 初学opencv-拉普拉斯变换
- 初学opencv-Canny算子
- 初学opencv/基本操作
- 初学opencv/边缘检测
- 初学opencv/特征匹配
- 初学opencv/直方图
- 初学opencv/形态学处理
- 初学opencv/滤波器
- AngularJS双向数据绑定
- 273. Integer to English Words
- String的思考
- 优秀博客
- leetcode 26. Remove Duplicates from Sorted Array-数组去重|双指针
- 初学opencv
- Selenium2 Python 自动化测试实战学习笔记(七)
- 二叉树中和为某一值的路径
- ADB 命令
- Apache服务器最新版下载、安装及配置
- java学习笔记(二)
- make输出到文件
- 64位win7,32位python下安装libsvm
- Spring 注解学习手札(六) 测试