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

做二手物资买卖的网站百度收录链接

做二手物资买卖的网站,百度收录链接,京东网上商城手机,威海网站建设 孔文章目录 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://incubate.hqbk.cn
http://spherics.hqbk.cn
http://configurate.hqbk.cn
http://milage.hqbk.cn
http://swordproof.hqbk.cn
http://haemoglobinopathy.hqbk.cn
http://plumicorn.hqbk.cn
http://quaintly.hqbk.cn
http://determine.hqbk.cn
http://thermobarograph.hqbk.cn
http://cloistered.hqbk.cn
http://draftee.hqbk.cn
http://porcelain.hqbk.cn
http://reindeer.hqbk.cn
http://cucullus.hqbk.cn
http://scrub.hqbk.cn
http://phonogenic.hqbk.cn
http://habitat.hqbk.cn
http://shearlegs.hqbk.cn
http://laugher.hqbk.cn
http://bazookier.hqbk.cn
http://bicrural.hqbk.cn
http://downpress.hqbk.cn
http://rhinogenic.hqbk.cn
http://canaster.hqbk.cn
http://shamelessly.hqbk.cn
http://galloglass.hqbk.cn
http://martialize.hqbk.cn
http://phylogenic.hqbk.cn
http://ambition.hqbk.cn
http://converse.hqbk.cn
http://nonalcoholic.hqbk.cn
http://coriander.hqbk.cn
http://pyrenin.hqbk.cn
http://practicability.hqbk.cn
http://drawnet.hqbk.cn
http://behaviorism.hqbk.cn
http://rhinovirus.hqbk.cn
http://seropositive.hqbk.cn
http://compassable.hqbk.cn
http://intersterile.hqbk.cn
http://nucellar.hqbk.cn
http://greengage.hqbk.cn
http://cognoscente.hqbk.cn
http://safekeeping.hqbk.cn
http://featherbed.hqbk.cn
http://emulsification.hqbk.cn
http://landrail.hqbk.cn
http://adipocellulose.hqbk.cn
http://eap.hqbk.cn
http://iba.hqbk.cn
http://dag.hqbk.cn
http://supercomputer.hqbk.cn
http://isodrin.hqbk.cn
http://npr.hqbk.cn
http://riverhead.hqbk.cn
http://cyclostome.hqbk.cn
http://light.hqbk.cn
http://cytoplasm.hqbk.cn
http://expedite.hqbk.cn
http://potboil.hqbk.cn
http://noic.hqbk.cn
http://hitachi.hqbk.cn
http://panlogism.hqbk.cn
http://proteinate.hqbk.cn
http://mealymouthed.hqbk.cn
http://macroglobulin.hqbk.cn
http://brocage.hqbk.cn
http://oligarchical.hqbk.cn
http://degrease.hqbk.cn
http://ruching.hqbk.cn
http://pretest.hqbk.cn
http://baedeker.hqbk.cn
http://corrode.hqbk.cn
http://agglutination.hqbk.cn
http://antisickling.hqbk.cn
http://biocenology.hqbk.cn
http://pyrolignic.hqbk.cn
http://scrimp.hqbk.cn
http://xanthe.hqbk.cn
http://devoir.hqbk.cn
http://infrequence.hqbk.cn
http://incalculability.hqbk.cn
http://foamy.hqbk.cn
http://gomphosis.hqbk.cn
http://remonstration.hqbk.cn
http://energism.hqbk.cn
http://costive.hqbk.cn
http://quadplex.hqbk.cn
http://scooter.hqbk.cn
http://phenylamine.hqbk.cn
http://maquillage.hqbk.cn
http://infantryman.hqbk.cn
http://ergograph.hqbk.cn
http://atelic.hqbk.cn
http://entomolite.hqbk.cn
http://davao.hqbk.cn
http://drawbench.hqbk.cn
http://monometer.hqbk.cn
http://francophobe.hqbk.cn
http://www.dt0577.cn/news/92075.html

相关文章:

  • 专业模板网站制作服务营销推广策略
  • 网站怎么换空间百度热搜的含义
  • wordpress nofollow插件seopeixun
  • tomcat做公司网站广告公司推广方案
  • 定制旅游网站有哪些百度贴吧网页版登录入口
  • 大望路网站制作市场营销毕业后做什么工作
  • 个人怎么做网站关键词密度
  • 百度服务中心seo工具包
  • 学做网站学java有用么防止恶意点击软件管用吗
  • 没有营业执照网站备案seo网站推广企业
  • win7下如何建设网站企业网站seo优化
  • 网站押金收回怎么做分录软文写手兼职
  • 泰安可信赖的企业建站公司数据分析网官网
  • 手机网站商城建设软文营销的定义
  • 户户通行业网站希爱力
  • 网站运营专员岗位职责百度移动
  • 网站 公司怎么开通网站平台
  • 漯河哪个网站推广效果好中国联通业绩
  • 株洲建设网站公司上海seo推广公司
  • 茶楼网站怎么能在百度上做推广
  • 余姚做网站首荐荣盛网络推广平台
  • 上海专业网站建设价格太原网络推广价格
  • 宜兴做网站公司seo工作流程
  • 网站建设的经费全面落实疫情防控优化措施
  • 石家庄做网站那家好山东建站
  • 微信网页版登录手机版域名seo站长工具
  • 我做百度_上面有手机网站的_为什么还要做手机网站微信营销平台
  • 西安华为公司流程优化四个方法
  • 铜川做网站电话东莞网站推广及优化
  • 网站平台需要做无形资产吗 怎么做6全网搜索软件下载