代码如下:
// opencv_drawroi.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <OpenCV245.h>
using namespace std;
using namespace cv;
CvPoint prev_pt = {-1, -1};
Mat img;
Mat img_mask;
Mat dst;
void on_mouse(int event, int x, int y, int flags, void* )
{
if(!img.data)
return;
if ( event == CV_EVENT_LBUTTONUP || !(flags & CV_EVENT_FLAG_LBUTTON)) //判断事件为松开鼠标左键或者不是左拖拽
{
prev_pt = cvPoint(-1, -1);
}
else if (event == CV_EVENT_LBUTTONDOWN) //判断为按下左键
{
prev_pt = cvPoint(x,y);
}
else if ( event == CV_EVENT_MOUSEMOVE && (flags & CV_EVENT_FLAG_LBUTTON)) //判断移动鼠标并且左拖拽
{
CvPoint pt = cvPoint(x, y);
if ( prev_pt.x < 0)
{
prev_pt = pt;
}
line(img_mask, prev_pt, pt, Scalar(0),2,8,0); //模板上划线
line(img, prev_pt, pt, Scalar::all(255),2,8,0); //原图上划线
prev_pt = pt;
imshow("image", img);
}
if (e