当前位置: 首页 > news >正文

应用市场最新版下载江北seo页面优化公司

应用市场最新版下载,江北seo页面优化公司,万网官网4399,长沙制作公园仿竹围栏厂家电话文章目录 opencv鼠标事件函数setMouseCallback()详解1、鼠标事件函数:(1)鼠标事件函数原型:setMouseCallback(),此函数会在调用之后不断查询回调函数onMouse(),直到窗口销毁(2)回调函…

文章目录

        • opencv鼠标事件函数setMouseCallback()详解
          • 1、鼠标事件函数:
            • (1)鼠标事件函数原型:setMouseCallback(),此函数会在调用之后不断查询回调函数onMouse(),直到窗口销毁
            • (2)回调函数onMouse(),可随意命名,但是要与 setMouseCallback()函数里的回调函数名称一致
          • 2、代码示例:
            • (1)main.cpp
            • (2)头文件demo.h
            • (3)demo.cpp
            • (4)效果演示

opencv鼠标事件函数setMouseCallback()详解

1、鼠标事件函数:
(1)鼠标事件函数原型:setMouseCallback(),此函数会在调用之后不断查询回调函数onMouse(),直到窗口销毁
  void setMouseCallback(const String& winname, MouseCallback onMouse, void* userdata = 0
)参数解释:winname:窗口名称;onMouse:回调函数;userdata:传递给回调函数用户自定义的外部数据,userdata是一个 void 类型的指针;
(2)回调函数onMouse(),可随意命名,但是要与 setMouseCallback()函数里的回调函数名称一致
void onMouse(int event, int x, int y, int flags, void *userdata
) 参数解释:
event:表示鼠标事件类型的常量(#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         //中键双击
);
x和y:鼠标指针在图像坐标系的坐标;
flags:鼠标事件标志的常量;
userdata:回调函数接收,用户自定义的外部数据,userdata是一个 void 类型的指针;
2、代码示例:

利用鼠标事件函数,提取ROI区域:

(1)main.cpp
#include <opencv2\opencv.hpp>
#include <iostream>
#include <demo.h>using namespace cv;
using namespace std;int main() {//读取图像,BGR存储在Mat矩阵里Mat src = cv::imread("C:\\cpp\\image\\suzy4.jpg");if (src.empty()) {printf("could not load image..../n");return -1;}Demo demo;demo.mouseEvent(src);waitKey();destroyAllWindows();return 0;
}
(2)头文件demo.h
#include <opencv2/opencv.hpp>using namespace cv;class Demo
{
public:void mouseEvent(Mat &image);
private:};
(3)demo.cpp
#include <Demo.h>using namespace std;Point sp(-1, -1);
Point ep(-1, -1);
Mat temp;
static void onMouse(int event, int x, int y, int flags, void *userdata) {/*** 对指针userdata,进行转换和解引用的操作,将userdata指向的Mat对象,赋值给名为image的变量,以便后续对图像数据的处理:* userdata是一个void类型的指针,需要转换为Mat类型的指针,然后用*运算符解引用,得到Mat对象,再赋值给名为image的变量,这样就可以对image进行操作了;*/Mat image = *((Mat*)userdata);if (event == EVENT_LBUTTONDOWN) {// 起点坐标sp.x = x;sp.y = y;std::cout << "start point:" << sp << std::endl;}else if (event == EVENT_LBUTTONUP) {ep.x = x;ep.y = y;// 结束点坐标int dx = ep.x - sp.x;int dy = ep.y - sp.y;if (dx > 0 && dy > 0) {Rect box(sp.x, sp.y, dx, dy);temp.copyTo(image);imshow("ROI区域", image(box));rectangle(image, box, Scalar(0, 0, 255), 2, 8, 0);imshow("鼠标绘制", image);// ready for next drawingsp.x = -1;sp.y = -1;}}else if (event == EVENT_MOUSEMOVE) {if (sp.x > 0 && sp.y > 0) {ep.x = x;ep.y = y;int dx = ep.x - sp.x;int dy = ep.y - sp.y;if (dx > 0 && dy > 0) {Rect box(sp.x, sp.y, dx, dy);temp.copyTo(image);rectangle(image, box, Scalar(0, 0, 255), 2, 8, 0);imshow("鼠标绘制", image);}}}
}void Demo::mouseEvent(Mat &image) {namedWindow("鼠标事件", WINDOW_AUTOSIZE);/*** 由于回调函数需要传入的是一个void类型指针,我们先取image的地址,再将&image强制转换为void类型指针,具体操作如下:* &image:获取变量image的内存地址,即Mat对象的指针;* (void*):是一个强制类型转换,将image的地址转换为void类型指针,这样就可以将参数传递给回调函数了;*/setMouseCallback("鼠标绘制", onMouse, (void*)(&image));imshow("鼠标绘制", image);temp = image.clone();
}
(4)效果演示

在这里插入图片描述

http://www.yayakq.cn/news/43650/

相关文章:

  • 网站界面设计需要首先做市场研究招标网公告
  • 建设银行信用卡被钓鱼网站骗了15000网站获利模式
  • 大连做企业网站排名宁波企业做网站哪家好
  • 网站建设0基础学起万源网站建设
  • 专业的天津网站建设莒南县建设局网站
  • 本地企业网站建设模板wordpress 属于多个栏目
  • c2c网站有哪些?中文免费网站模板
  • 什么网站类型wordpress 汉化 插件怎么用
  • 网站开发主机的选择网站建设czzmcn
  • 沈阳网站建设教案模板西安有什么网站
  • 长沙模板建站欢迎咨询浩子文wordpress
  • 个人网站设计论文摘要关键词怎么做网络广告推广
  • 宁波网站建设在哪里2018做论坛网站好吗
  • 南京网站建设丁豆褒网站建设书
  • 一个ip 做2个网站吗专业的外贸行业网站制作
  • 做网站为什么需要营业执照南京网站设计案例
  • 如何制作一个静态网站源码网站建设前期准备
  • 帮忙做ppt的网站电子网站设计
  • 网站dns解析设置做网站的外包公司可以进吗
  • 有限公司英文厉害的seo顾问
  • 大学文明校园网站建设方案在网站上有中英切换怎么做
  • 网站怎么申请微信支付接口成都学生做网站
  • 蓬莱做网站公司网络营销案例分析模板
  • 附近那里有做网站的网上购物哪个平台质量好
  • 网站建设与管理说课ppt泉州建设公司
  • 定制型网站建设网站百度无排名
  • 知名响应式网站企业修改wordpress语言设置
  • 福建公司网站建设深圳南山 网站建设
  • 中文网站排名wordpress 预约
  • 广东网站开发哪家阜阳网站开发招聘