#include "cv.h"
#include "highgui.h"
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
Point pt ,po;
Mat img0, img,mask,gray,gray0;
Mat forgery;
Mat mask_gray;
void on_mouse(int event, int x, int y, int flags, void* yybird )
{
if (!img.data) { printf("image is empty!\n"); return; }
if (event == CV_EVENT_LBUTTONUP || !(flags & CV_EVENT_FLAG_LBUTTON))/*初始化坐标*/
{
pt = Point(x, y);
//上一个坐标点
po= Point(-1, -1);
}
else if(event == CV_EVENT_LBUTTONDOWN )
po= Point(x, y);
/*画出封闭图形*/
else if(event == CV_EVENT_MOUSEMOVE && (flags & CV_EVENT_FLAG_LBUTTON))
{
Point pt = Point(x,y);
if (po.x < 0) { po = pt; }//处理第一次
line(img,po,pt,Scalar(0,0,255),1,8,0);
line(mask,po,pt,Scalar(255,255,255),1,8,0);
//坐标点传递
po= pt;
imshow("image", img);
imshow("mask",mask);
}
if (event==CV_EVENT_RBUTTONUP)//右击选择框图 EVENT_RBUTT