通过Opencv自带的函数功能cvRectangle来实现用鼠标画矩形,具体代码如下:
#include "stdio.h"
#include "highgui.h"
#include "cv.h"
void my_mouse_callback(int event,int x,int y,int flags,void *param);
CvRect box;
/*
typedef struct CvRect
{
int x;
int y;
int width;
int height;
}
CvRect;
*/
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(0xff,0x00,0x00));
/* 函数原型:void cvRectangle( CvArr* img, CvPoint pt1, CvPoint pt2, CvScalar color,int thickness=1, int line_type=8, int shift=0 );
参数介绍:
img -- 图像.
pt1 -- 矩形的一个顶点。
pt2 -- 矩形对角线上的另一个顶点
color -- 线条颜色 (RGB) 或亮度(灰度图像 )(grayscale image)。
thickness -- 组成矩形的线条的粗细程度。取负值时(如 CV_FILLED)函数绘制填充了色彩的矩形。
line_type -- 线条的类型。见cvLi