鼠标事件

#include<opencv2/opencv.hpp>
#include<iostream>using namespace cv;
using namespace std;

/*
Mat img(500, 500, CV_8UC3, Scalar(255, 255, 255));//定义全局变量void OnMouse(int event, int x, int y, int flags, void* param) {if (event == CV_EVENT_LBUTTONDOWN)//如果鼠标按下{cout << "mouse down" << endl;//控制台输出circle(img, Point(x, y), 80, Scalar(255, 255, 0), 2, 8);//在img上画圆}
}
void main() {namedWindow("mouse", CV_WINDOW_AUTOSIZE);setMouseCallback("mouse", OnMouse, 0);while (1) {imshow("mouse", img);if (27 == waitKey(10))//每隔10ms检测按时是否按下break;}}
*/
/*将Mat img设置为指针传入
Point pt;
void OnMouse(int event, int x, int y, int flag, void* param) {Mat img = *(Mat*)param;//将param强制转换为Mat指针,*(Mat*)=Mat, 类比*(int*)= int一样switch (event){case CV_EVENT_LBUTTONDOWN: //鼠标左键按下时pt.x = x;pt.y = y;break;case CV_EVENT_LBUTTONUP: //鼠标左键抬起时rectangle(img, pt, Point(x, y), Scalar(0, 255, 0), 2, 8);break;default:break;}
}void main()
{Mat img(500, 500, CV_8UC3, Scalar(255, 255, 255));namedWindow("mouse", CV_WINDOW_AUTOSIZE);setMouseCallback("mouse", OnMouse, &img);//传入img地址这样就不必将img设置为全局变量while (1) {imshow("mouse", img);if (27 == waitKey(10))break;}
}

滑条操作

Mat dst;
int value = 20;void onChange(int, void* param) {Mat src = *(Mat*)param;threshold(src, dst, value, 255, THRESH_BINARY);//二值化imshow("TrackBar", dst);
}void main() {Mat src = imread("../source/1.jpg", 0);//读入灰度图像namedWindow("TrackBar", CV_WINDOW_AUTOSIZE);createTrackbar("Threshold", "TrackBar", &value, 255, onChange, &src);threshold(src, dst, value, 255, THRESH_BINARY);imshow("TrackBar", dst);waitKey(0);
}

opencv鼠标事件和滑条操作相关推荐

  1. OpenCV鼠标事件和滑动条事件

    鼠标事件 ① 鼠标事件是通过传统的回调函数机制来完成. void your_mouse_callback(int event, int x, int y, int flags, void* param ...

  2. Python,OpenCV鼠标事件进行矩形、圆形的绘制(随机颜色、随机半径)

    Python,OpenCV鼠标事件进行矩形.圆形的绘制(随机颜色.随机半径) 1. 效果图 2. 源码 参考 这篇博客将介绍鼠标事件,并介绍鼠标事件矩形.圆形的绘制: 所有的鼠标事件(左键按下.左键释 ...

  3. Day 2 - Opencv 鼠标事件回调并在图像上显示像素值

    Day 2 - Opencv 鼠标事件回调并在图像上显示像素值 #include <highgui.hpp> #include <opencv.hpp> #include &l ...

  4. OpenCV————鼠标绘制和滑动条

    导入包 import cv2 import numpy as np 可以通过下面的代码来查看所有的鼠标事件函数 events=[i for i in dir(cv2) if 'EVENT' in i] ...

  5. opencv画框返回坐标 python_python opencv鼠标事件实现画框圈定目标获取坐标信息

    本文实例为大家分享了python-opencv鼠标事件画框圈定目标的具体代码,供大家参考,具体内容如下 在视频/相机中,用鼠标画矩形框,圈定目标,从而获得鼠标的起始坐标点a.终止坐标点b # -*- ...

  6. openCV鼠标事件实例

    1.原理 OpenCV的鼠标事件主要涉及两个函数: 回调函数cvSetMouseCallback void cvSetMouseCallback( const char* window_name, C ...

  7. opencv 鼠标事件

    import cv2 as cv events = [i for i in dir(cv) if 'EVENT' in i] print( events ) # 打印所有的鼠标事件 import nu ...

  8. C++ opencv 鼠标事件响应

    1.API setMouseCallback   设置指定窗口的鼠标处理程序 共3个参数第1个参数 窗口名称第2个参数 处理鼠标事件的回调函数第3个参数 传递给回调函数的可选参数 MouseCallb ...

  9. qt中QScrollBar/QSlider鼠标点击滑条不能到达所点击的位置,只移动step距离修改

    // 方法是鼠标点击事件 void XSlider::mousePressEvent(QMouseEvent *e){// 向上父控件传递鼠标事件:否则,鼠标其他事件会失灵QSlider::mouse ...

  10. opencv鼠标操作,画矩形

    opencv鼠标操作,画矩形 效果图 主要两个函数在作用 //-------------------全局函数声明部分------------------------- //描述:全局函数的声明 //- ...

最新文章

  1. 灵玖Nlpir Parser语义智能系统精准汉语分词
  2. 我们来谈谈那些智能家居里的语音对话设备
  3. MPLS原理之MPLS基本结构—Vecloud微云
  4. 深入剖析微软ASP.NET Ajax中的数据绑定构架下篇之二
  5. 计算机操作系统思维导图_我在b站学计算机
  6. 静态成员函数与静态数据的使用
  7. 穿透防火墙调用EJB--rmi-http在JBOSS中的应用
  8. liunx中的gcc命令
  9. 错误java.lang.NoClassDefFoundError: org/jaxen/VariableContext
  10. eclipse导入android项目
  11. [FAQ21153]MT6761/MT6762/MT6765平台搭配LPDDR4 注意事项
  12. java基础学习1-java实验输出希腊字母表
  13. 雾霾天气下运动目标检测技术MATLAB
  14. RabbitMQ Federation 插件使用
  15. 米家和苹果HomeKit更推荐哪个,各自的优缺点如何?
  16. 这是一个只有一句话的木MA
  17. 浅析群控系统的发展之路,云控和群控的巨大差别
  18. Explaining Knowledge Graph Embedding via Latent Rule Learning
  19. RTX腾讯通怎么删除群聊人员
  20. 流浪地球动态桌面壁纸

热门文章

  1. 编写一个Linux虚拟网卡来实现类NVI
  2. wince 触摸屏 学习
  3. 《3D打印:正在到来的工业革命(第2版)》——2.4节粉末床熔融
  4. VGG为什么叫做VGG,VGG的由来
  5. 群英传内推第001期
  6. 入坑Java_入坑Java的自学之路
  7. zzuli:1000从今天开始入坑C语言
  8. 记录下学习的mac 自带apache 使用方法,及xamp的使用
  9. 请根据以下需求使用决策表设计测试用例
  10. 算法导论8.4-4-单位圆中均匀分布情况--桶排序