【个人笔记】08 回调函数+键盘响应操作

个人资料,仅供学习使用
学习课程:OpenCV4 C++ 快速入门视频30讲——贾志刚

08 回调函数+键盘响应操作

opencv知识点:

  • 回调函数 - callback
  • 键盘响应 - waitKey()

本课所解决的问题:

  • 什么是回调函数(callback)?
  • 在opencv中如何进行键盘响应?
  • 如何利用键盘响应对图像进行操作?
  • 处理视频的时候waitKey的参数应为多少?

1.回顾createTrackbar

在前面的课中,调用createTrackbar时,我们把函数on_lighton_contrast作为参数传入了,这种特别的方式,它被称为callback。回调函数(callback)在很多的UI和界面编程中非常常用 ,它最早在Windows叫做消息机制。

这里我们详细讲解一下回调函数,来加深对这种方式的理解

什么是回调函数

作者:no.body
链接:回调函数(callback)是什么?
来源:知乎

我们绕点远路来回答这个问题。

编程分为两类:系统编程(system programming)和应用编程(application programming)

  • 所谓系统编程,简单来说,就是编写
  • 而应用编程就是利用写好的各种库来编写具某种功用的程序,也就是应用

系统程序员会给自己写的库留下一些接口,即API(应用编程接口),以供应用程序员使用。
所以在抽象层的图示里,库位于应用的底下。

当程序跑起来时,一般情况下,应用程序(application program)会时常通过API调用库里所预先备好的函数。
但是有些库函数(library function)却要求应用先传给它一个函数,好在合适的时候调用,以完成目标任务。

这个被传入的、后又被调用的函数就称为回调函数(callback function)

打个比方,有一家旅馆提供叫醒服务,但是要求旅客自己决定叫醒的方法。可以是打客房电话,也可以是派服务员去敲门,睡得死怕耽误事的,还可以要求往自己头上浇盆水。

  • 这里,“叫醒”这个行为是旅馆提供的,相当于库函数
  • 但是叫醒的方式是由旅客决定并告诉旅馆的,也就是回调函数
  • 而旅客告诉旅馆怎么叫醒自己的动作,也就是把回调函数传入库函数的动作,称为登记回调函数

如下图所示(图片来源:维基百科):
在这里插入图片描述

回调机制的优势

从上面的例子可以看出,回调机制提供了非常大的灵活性。

请注意,从现在开始,我们把图中的库函数改称为中间函数了。
这是因为回调并不仅仅用在应用和库之间,任何时候,只要想获得类似于上面情况的灵活性,都可以利用回调。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啦啦啦大赛第大所

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值