#include <opencv2\opencv.hpp>

using namespace cv;

struct mouse_para
{
cv::Mat org;
cv::Mat img; std::string winName = ""; // todo: you can add your own members here.
}; void on_mouse(int event, int x, int y, int flags, void *_ustc) // event鼠标事件代号,x,y鼠标坐标,flags拖拽和键盘操作的代号
{
mouse_para *ustc = static_cast<mouse_para*>(_ustc); static Point pre_pt = (-1, -1);//初始坐标
static Point cur_pt = (-1, -1);//实时坐标 char temp[16];
if (event == CV_EVENT_LBUTTONDOWN)
{
std::cout << "Left buttom down !" << std::endl;
// todo: you can add your own code here.
}
else if (event == CV_EVENT_MOUSEMOVE && !(flags & CV_EVENT_FLAG_LBUTTON))//左键没有按下的情况下鼠标移动的处理函数
{
std::cout << "(" << x << ", " << y << ")" << std::endl;
// todo: you can add your own code here.
}
else if (event == CV_EVENT_MOUSEMOVE && (flags & CV_EVENT_FLAG_LBUTTON))//左键按下时,鼠标移动
{
std::cout << "Left buttom down and mouse move!" << std::endl;
// todo: you can add your own code here.
}
else if (event == CV_EVENT_LBUTTONUP)//左键松开
{
std::cout << "Left buttom up!" << std::endl;
// todo: you can add your own code here.
} //ustc->org.copyTo(ustc->img);
//imshow("img", ustc->img); } int main()
{
mouse_para mp;
mp.org = cv::Mat::ones(500, 500, CV_8UC1);
mp.org.copyTo(mp.img);
mp.winName = "img"; namedWindow(mp.winName);//定义一个img窗口
setMouseCallback(mp.winName, on_mouse, &mp);//调用回调函数 for (int i=0; i<255;++i)
{
i = i % 250;
mp.org = i*cv::Mat::ones(500,500, CV_8UC1);
mp.org.copyTo(mp.img); imshow(mp.winName, mp.img);
cv::waitKey(10);
} return 0;
}

  

opencv鼠标事件的更多相关文章

  1. 学习OpenCV——鼠标事件(画框)

    #include "cv.h" #include "highgui.h" bool check_line_state=false; IplImage* work ...

  2. Opencv函数setMouseCallback鼠标事件响应

    用户通过鼠标对图像视窗最常见的操作有: 1. 左键单击按下 2. 左键单击抬起 3. 左键按下拖动 4. 鼠标指针位置移动 单次单击操作响应事件及顺序 Opencv中setMouseCallback( ...

  3. opencv入门系列教学(四)处理鼠标事件

    一.鼠标事件的简单演示 opencv中的鼠标事件,值得是任何与鼠标相关的任何事物,例如左键按下,左键按下,左键双击等.我们先来看看鼠标事件有哪些,在python中执行下面代码: import cv2 ...

  4. Opencv step by step - 鼠标事件

    鼠标事件有下面几种(没有滚轮事件,比较遗憾): #define CV_EVENT_MOUSEMOVE 0 滑动 #define CV_EVENT_LBUTTONDOWN 1 左键点击 #define ...

  5. Opencv下图像对鼠标事件的响应

    直接上代码: //////////////////////////////////////////////////////////////////////// // // 该程序从文件中读入一幅图像, ...

  6. Opencv处理鼠标事件-OpenCV步步精深

    在图片上双击过的位置绘制一个 圆圈 鼠标事件就是和鼠标有关的,比如左键按下,左键松开,右键按下,右键松开,双击右键等等. 我们可以通过鼠标事件获得与鼠标对应的图片上的坐标.我们通过以下函数来调用查看所 ...

  7. OpenCV3添加滑动条和鼠标事件到图形界面

    鼠标事件和滑动条控制在计算机视觉和OpenCV中非常有用,使用这些控件,用户可以直接与图形界面交互,改变输入图像或者变量的属性值. /* In this section, we are going t ...

  8. python_Opencv_处理鼠标事件

    流程: 首先,创建一个鼠标事件回调函数,当鼠标事件发生时就会被执行. 鼠标事件可以是鼠标上的任何动作,比如左键按下,左键松开,左键双击等. 我们可以通过鼠标事件获得与鼠标对应的图片上的坐标. 根据这些 ...

  9. opencv鼠标操作及GUI矩形绘画

    OpenCV的鼠标操作是通过一个中介函数配合回调函数来实现的.指定鼠标操作消息回调函数的函数为SetMouseCallback. void setMouseCallback(const string& ...

随机推荐

  1. Ubuntu16.04下安装Cmake-3.8.2并为其配置环境变量

    下载安装包 首先我们到官网下载最新的cmake二进制安装包https://cmake.org/files/ 这里,我下载的是比较新的cmake-3.8.2-Linux-x86_64.tar.gz解压安 ...

  2. luoguP3292 [SCOI2016]幸运数字(点分治做法)

    题意 考虑点分治,每次处理过重心的询问(即两点在重心的不同子树中). 求出每个点到重心的线性基,之后对过重心的询问合并两点线性基求解. code: #include<bits/stdc++.h& ...

  3. 2019 SDN阅读作业(2)

    1.过去20年中可编程网络的发展可以分为几个阶段?每个阶段的贡献是什么? 可编程网络的发展可以分为以下三个阶段: (1)主动网络(Active networking,20世纪90年代中期到21世纪初) ...

  4. DRF--序列化

    为什么要用序列化 当我们做前后端分离的项目时,前后端交互一般都是JSON格式的数据,那么我们给前端的数据就要转为JSON格式,就需要我们拿到数据库后的数据进行序列化.在看DRF的序列化之前,先来看看d ...

  5. es6的map()方法解释

    es6的map()方法解释   map方法的作用不难理解,即“映射”,也就是原数组被“映射”成对应新数组.下面这个例子是数值项求平方: var data = [1, 2, 3, 4]; var arr ...

  6. D3力布图绘制--节点间的多条关系连接线的方法(转)

    在项目中遇到这样的场景,在使用D3.js绘制力布图的过程中,需要在2个节点间绘制多条连接线,找到一个不错的算法,在此分享下. 效果图: HTML中要连接 <!DOCTYPE html> & ...

  7. 【mysql】修改mysql数据库密码

    修改mysql数据库密码 操作系统:Linux centos7 数据库:mysql5.7 一.在已知MYSQL数据库的ROOT用户密码的情况下,修改密码 1.在Linux命令行,使用mysqladmi ...

  8. .net core linux环境下 System.Data.SqlClient.SqlException: Connection Timeout Expired.

    最近遇到了一个很奇葩的问题,我编写了一个.net core程序读取多个数据库数据源,进行数据同步处理.该程序在windows环境下运行完全正常,但在linux环境下运行报异常,提示 System.Da ...

  9. WPF数据模板(7)

    数据模板常用在3种类型的控件, 下图形式: 1.Grid这种列表表格中修改Cell的数据格式, CellTemplate可以修改单元格的展示数据的方式. 2.针对列表类型的控件, 例如树形控件,下拉列 ...

  10. Pytest 测试框架

    一 . Pytest 简介 Pytest是python的一种单元测试框架. 1. pytest 特点 入门简单,文档丰富 支持单元测试,功能测试 支持参数化,重复执行,部分执行,测试跳过 兼容其他测试 ...