如何使用 cv::setMouseCallback

2023-11-30

我正在尝试在我的 c++ 项目中使用 cv::setMouseCallback 。我就是不明白。 让我有一个类东西如何告诉这个类你有一个框架并在这个框架上运行 cv::setMouseCallback 这是一个example我正在尝试做的事情:

 class Stuff{
 public: 
Stuff();
void setFrame(cv::Mat); 
void mouse (int,int, int, int,void*);
  private :
cv::Mat frame;
int key;
 };

 Stuff::Stuff(){}

 void Stuff::setFrame(cv::Mat framex){
frame = framex;
 }


  int main (){
Stuff  obj;

cv::Mat frame = cv::imread ("examople.jpg");
char* name;
cv::imshow(name,frame);
cv::setMouseCallback(name,obj.mouse,&frame) // I' stop here because that's exactlly what just don't work 
    }

这是得到的错误消息:

   Stuff::mouse : function call missing argument list; use '&Stuff::mouse ' to create a pointer to member 

真正的程序太大,无法将其代码放在这里,这就是为什么我试图简化问题


您必须在类中将鼠标处理程序声明为静态。例如,我有一个dragger与一名成员mouser,我想被称为。我宣布成为帮手static void mouser,转换收到的 void* 并调用成员:

class dragger {

void mouser(int event, int x, int y) {
  current_img = original_img.clone();
  Point P(x, y);
  ...
}
static void mouser(int event, int x, int y, int, void* this_) {
  static_cast<dragger*>(this_)->mouser(event, x, y);
}

和实例dragger构造函数是这样的

dragger(string w, Mat m) :
    window_id(w), status(0), original_img(m), /*black(0, 0, 0),*/ K(5, 5)
{
   ...
   setMouseCallback(w, mouser, this);
}

...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 cv::setMouseCallback 的相关文章

随机推荐

  • 如何使用 MySQL 比较两个逗号分隔的字符串列表

    我使用了一个名为 containsAll 的 Java 方法来检查 ArrayList 是否具有公共内容 假设我有一个列表 A 一行 以及 MySQL 表中的几个其他列表 在 名称 列中 逐行 所有列表均由逗号分隔的字符串 列表中至少有一个
  • 使用 Qt 下载文件?

    我正在尝试找出一种方法让我的 Qt 浏览器应用程序可以从我们的网络应用程序下载 Word 文档 该 Web 应用程序是用 ExtJS 编写的 当用户 在 Chrome 等浏览器中 单击 下载报告 按钮时 JavaScript 事件侦听器会检
  • 在文档末尾添加形状

    我正在尝试添加一个形状 特别是一个文本框 我需要在通过vba添加所有内容之后添加它 我似乎不知道如何做到这一点 因为添加形状需要精确测量左侧和顶部参数 Dim shpActual Dim pos PtsToInches set shpAct
  • 使用 Codeigniter 进行 PHP 路由(URL 中的标题用于 SEO)

    我对使用 Codeigniter 进行路由有一些疑问 我现在正在做的事情如下 route articles num articles view 1 1 will contain an ID 这意味着 example com articles
  • 如何通过兼容不同应用程序的意图来显示图像

    我正在尝试共享之前保存在磁盘上的图像 发送Intent ACTION SEND 问题是我找不到一种方法来兼容不同的应用程序 在我的例子中是官方 Gmail 应用程序和 TweetDeck 我要分享的图像包含在File File agenda
  • 使用 Git 根据提交 ID 恢复到特定提交? [复制]

    这个问题在这里已经有答案了 With git log 我得到了迄今为 止我所做的提交的列表 commit f5c5cac0033439c17ebf905d4391dc0705dbd5f1 Author prosseek Date Fri S
  • 在 SwiftUI 中滑动列表时隐藏导航栏

    如何在 SwiftUI 中向上滑动时隐藏导航栏 向下滑动时显示导航栏 例如在 facebook 上 在 UKit 中有navigationBar hideBarsOnSwipe 但我似乎无法在 SwiftUI 中找到这样的功能 我是否遗漏了
  • JQuery DataTables 库 ASP.NET MVC

    我想在我的 ASP NET MVC 5 项目中使用 jQuery DataTables 我确实使用了数据表并且它工作得很好 但问题是我必须手动设置过滤器和查询 而且我有一种感觉 我尝试在 mvc 中实现数据表的方式不太正确 是的 我确实得到
  • 我如何让 Delphi 知道我已经处理了异常?

    我已将 Application OnException 设置为自定义异常处理程序 以便我可以记录崩溃并提供退出选项 然而 我现在发现 即使在我已经处理过的异常上 它也会运行 例如 验证数字输入时出现的异常 有没有办法让自定义异常处理程序仅在
  • 使用 -rectypes 有哪些权衡?

    我问了一个问题 为什么我尝试进行函数链接不起作用 使函数在完成一些工作后返回自身 答案是 要使函数返回自身 您需要启用递归类型 rectypes 这让我很困惑 为什么这个功能隐藏在编译器标志后面 必须有充分的理由不默认启用它 所以我的问题是
  • 单独的输入和打印线程?

    我只是想知道如何在等待用户输入时打印文本 例如 如果我们在聊天应用程序中 我们有一个input 以便用户可以发送消息并print 接收消息时 它需要同时进行 我尝试使用线程 但它总是停在一个线程处 Example def receive c
  • 带索引的 Swift 访问数组给出以下错误。知道为什么吗?

    let index1 arc4random uniform 10 let x array index1 第二行给出以下错误 could not find an overload for subscript that accepts the
  • 如何更新通过SimpleCursorAdapter从数据库查询数据的ListView?

    我想使用 SimpleCursorAdapter 在列表视图中显示从数据库查询的项目 例如 数据库中可能有 20 000 个项目 我想只加载100个查询的项目 id 1 100 而不是加载所有项目 当滚动到listview的末尾时 加载另外
  • 如何使用 PHP 中数据库中的内容将 HTML 文件附加到电子邮件?

    如何通过 PHP 发送带有 HTML 文件附件的邮件 gt HTML 文件 代码 的内容在数据库中的字符串中 有没有一些简单的方法或免费脚本可以做到这一点 我不想将文件存储在本地 我需要从数据库中读取它并直接作为附件发送 不包含在正文中 如
  • 如何在 NSString 中使用 NULL 字符?

    在 PHP 中 我可以调用base64 encode x00 username x00 password 和 x00 代表 NULL 字符 现在 在 Objective C 中 我有一个函数可以将 NSData 转换为base64 编码的
  • 如何检查和重定向有线耳机和免提电话之间的音频? [复制]

    这个问题在这里已经有答案了 我正在开发一个简单的应用程序 应该toggle在扬声器电话和有线耳机之间 在按钮单击事件上播放音频 我正在尝试利用isWiredHeadsetOn 函数 但它表示 Android API lvl 5 及以上版本已
  • array_flip 以逗号分隔格式打印重复值

    我正在尝试使用array flip以逗号分隔的格式打印重复值 a array a gt red b gt green c gt blue d gt blue flip array flip a print r flip 我的输出是 Arra
  • 对于结构变量s1,s2,为什么我可以初始化“s1={25,3.5}”,将s2赋值为“s1=s2”,但不能使用“s1={59,3.14}”?

    在 C 中 如果一个结构变量的类型相同 我们可以将它们的值分配给其他变量 根据这一点 在我的以下程序中 我可以使用s1 s2当两者都是struct相同类型的变量 但是为什么我不允许使用s1 59 3 14 在那之后 我知道我们无法分配字符串
  • Android设置偏好类别的背景颜色

    我尝试自定义偏好类别的背景颜色 我已经更改了首选项本身的背景颜色 但我找不到如何更改类别背景颜色的方法 我找到了两种方法 但它们对我不起作用 更改首选项类别标签颜色背景 Through 这个链接 我发现this 但我尝试过的一切都对我不起作
  • 如何使用 cv::setMouseCallback

    我正在尝试在我的 c 项目中使用 cv setMouseCallback 我就是不明白 让我有一个类东西如何告诉这个类你有一个框架并在这个框架上运行 cv setMouseCallback 这是一个example我正在尝试做的事情 clas