通过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 -- 线条的类型。见cvLine的描述
shift -- 坐标点的小数点位数。*/
}
int main(int argc, char* argv[])
{
box=cvRect(-1,-1,0,0);
IplImage *image=cvCre

这篇博客介绍了如何利用OpenCV的cvRectangle函数实现鼠标绘制矩形的功能,详细讲解了相关代码实现过程。
最低0.47元/天 解锁文章
2421

被折叠的 条评论
为什么被折叠?



