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

时间:2022-11-07 08:38:25

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

 /*
In this section, we are going to introduce you to the concepts of adding slider and
mouse events for basic interactions. To understand this correctly, we will create a small
project, where we paint green circles in the image using the mouse events and blur the
image with slider.
*/
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
using namespace cv; // Create a variable to save the position value in track
int blurAmount = ; // Trackbar call back function
static void onChange(int pos, void* userInput); // Mouse callback
static void onMouse(int event, int x, int y, int, void* userInput); int main(int argc, const char** argv)
{
// Read images
Mat boy = imread("../images/eating.jpg"); // Create windows
namedWindow("Boy"); // Create a trackbar
createTrackbar("Boy", "Boy", &blurAmount, , onChange, &boy); setMouseCallback("Boy", onMouse, &boy); // Call to onChange to init
onChange(blurAmount, &boy); // wait app for a key to exit
waitKey(); // Destroy the windows
destroyWindow("Boy"); return ;
} // Trackbar call back function
static void onChange(int pos, void* userInput)
{
if (pos <= ) return;
// Aux variable for result
Mat imgBlur; // Get the pointer input image
Mat* image = (Mat*)userInput; // Apply a blur filter
blur(*image, imgBlur, Size(pos, pos)); // Show the result
imshow("Boy", imgBlur);
} // Mouse callback
static void onMouse(int event, int x, int y, int, void* userInput)
{
if (event != EVENT_LBUTTONDOWN) return; // Get the pointer input image
Mat *image = (Mat*)userInput; // Draw circle
circle(*image, Point(x, y), , Scalar(, , ), ); // Call onChange to get blurred image
onChange(blurAmount, image);
}

程序运行效果如下:

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

OpenCV3添加滑动条和鼠标事件到图形界面的更多相关文章

  1. OpenCV——图像的载入、显示、输出到文件和滑动条、鼠标操作

    图像的载入.显示.输出到文件和滑动条 滑动条 示例: 鼠标操作

  2. OpenCV 为程序界面添加滑动条

    #include <cv.h> #include <highgui.h> using namespace cv; /// 全局变量的声明与初始化 ; int alpha_sli ...

  3. 1&period;0&period;2-学习Opencv与MFC混合编程之---为播放AVI视频添加滑动条

    源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961642 版本1.0.2新增内容 Ø  全局变量和函数的添加: 在CVMFCview.cpp文件 ...

  4. Slider 滑动条效果

    转载自:http://www.cnblogs.com/cloudgamer/archive/2008/12/24/Slider.html 这个滑动条(拖动条)效果,一开始是参考了BlueDestiny ...

  5. 给div&quot&semi;上&quot&semi;滑动条

    最近做项目时修改一个遗留的bug,大概是这样:有一个聊天窗口,用户聊天内容展现在窗口上.其实这个窗口是一个带滑动条的div,随着聊天内容的添加,滑动条也越来越长了,这不是重点,重点是每次刷新窗口时候, ...

  6. 关于Unity中NGUI的Checkbox复选框、Slider滑动条和Button的6种触发回调事件的方式

    Checkbox复选框 1.创建一个NGUI背景Sprite1节点 2.打开NGUI---->Open---->Prefab Toolbar---->选择一个复选框节点,拖拽到背景节 ...

  7. opencv学习之路(5)、鼠标和滑动条操作

    一.鼠标事件 #include<opencv2/opencv.hpp> #include<iostream> using namespace cv; using namespa ...

  8. 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C&num;中Trim&lpar;&rpar;、TrimStart&lpar;&rpar;、TrimEnd&lpar;&rpar;的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c&num;中 总结

    史上最全的CSS hack方式一览 2013年09月28日 15:57:08 阅读数:175473 做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况.基于此,某些情况我 ...

  9. 【WPF】点击滑动条(Slider),移动滑块(Tick)到鼠标点击的位置

    问题:点击Slider控件时,滑块会自动跳到滑动条的最边缘位置,无法跳到鼠标点击的位置上. 办法:给Slider控件设置属性IsMoveToPointEnabled="True"即 ...

随机推荐

  1. php获取网卡MAC地址源码

    <?php /** 获取网卡的MAC地址原码:目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址 **/ class GetMacAddr{ var $return_array = ...

  2. Codeforces Round &num;383 &lpar;Div&period; 2&rpar; 解题报告

    本来是打算所有半夜进行的CF都不参加的,但看到这次比赛22:35就开始,还是没有忍住orz--晚上总是不够清醒,做题思维不如白天活跃,低级错误常常出现.出的比较早的C因为一个书写错误有点小bug,在比 ...

  3. go中方法的接收者是值或者指针的区别

    值类型的变量和指针类型的变量 先声明一个结构体: type T struct { Name string } func (t T) M1() { t.Name = "name1" ...

  4. Performing User-Managed Database-18&period;4、Restoring Datafiles and Archived Redo Logs

    18.4.Restoring Datafiles and Archived Redo Logs 假定介质故障损坏的一个或多个数据文件,数据文件必须恢复损坏的文件之前恢复. 该位置是不是想恢复原来姿势. ...

  5. SSM整合开发

    导入开发包 asm-3.2.0.RELEASE.jar asm-3.3.1.jar c3p0-0.9.jar cglib-2.2.2.jar com.springsource.net.sf.cglib ...

  6. python实例编写(6)--引入unittest测试框架,构造测试集批量测试(以微信统一管理平台为例)

    ---恢复内容开始--- 一.python单元测试实例介绍 unittest框架又叫PyUnit框架,是python的单元测试框架. 先介绍一个普通的单元测试(不用unittest框架)的实例: 首先 ...

  7. ABP官方文档翻译 2&period;2 ABP会话

    ABP会话 介绍 关于IAbpSession 注入会话 会话属性 覆盖当前会话值 警告! 用户标示 介绍 如果应用需要登录的话,同样也需要知道当前用户可以执行哪些操作.ABP在展现层提供了会话对象,同 ...

  8. AES在线加密解密-附AES128,192,256,CBC,CFB,ECB,OFB,PCBC各种加密解密源码

    一.AES在线加密解密:AES 128/192/256位CBC/CFB/ECB/OFB/PCBC在线加密解密|在线工具|在线助手|在线生成|在线制作 http://www.it399.com/aes ...

  9. 微信jssdk上传图片,一张一张的上传 和 一次性传好几张

    //html模板 <div class="zhaopin_3_2"> <div id="bbb"></div> <im ...

  10. echart生成饼状图

    //绘制图表. echarts.init(document.getElementById('main')).setOption({ tooltip : { trigger: 'item', //触发类 ...