opencv使用—使用鼠标任意形状的抠图(获取任意形状mask)
项目中使用到opencv提取多边形,做成mask。在此做个总结。
opencv版本:opencv4.1.0
#include <iostream>
#include "opencv2/core/core.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <opencv2/imgproc/imgproc.hpp> // cvtColor
#include "opencv2/imgproc/types_c.h"
#include <opencv2\imgproc\types_c.h> //解决cvDestroyWindow("ROI");
using namespace std;
using namespace cv;
#define CV_EVENT_MOUSEMOVE 0 //滑动
#define CV_EVENT_LBUTTONDOWN 1 //左键点击
#define CV_EVENT_RBUTTONDOWN 2 //右键点击
#define CV_EVENT_MBUTTONDOWN 3 // 中键点击
#define CV_EVENT_LBUTTONUP 4 // 左键放开
#define CV_EVENT_RBUTTONUP 5 // 右键放开
#define CV_EVENT_MBUTTONUP 6 // 中键放开
#define CV_EVENT_LBUTTONDBLCLK 7 //左键双击
#define CV_EVENT_RBUTTONDBLCLK 8 // 右键双击
#define CV_EVENT_MBUTTONDBLCLK 9 // 中键双击
#define CV_EVENT_FLAG_LBUTTON 1 // 左键拖曳
#define CV_EVENT_FLAG_RBUTTON 2 // 右键拖曳
#define CV_EVENT_FLAG_MBUTTON 4 // 中键拖曳
#define CV_EVENT_FLAG_CTRLKEY 8 // (8~15)按Ctrl不放事件
#define CV_EVENT_FLAG_SHIFTKEY 16 //(16~31)按Shift不放事件