OpenCV 4.11.0
开源计算机视觉
加载中…
搜索中…
未找到匹配项
在应用程序中添加轨迹条!

下一个教程: 使用 GDAL 读取地理空间栅格文件

原作者Ana Huamán
兼容性OpenCV >= 3.0
  • 在之前的教程中(关于 使用 OpenCV 添加(混合)两张图像更改图像的对比度和亮度!),您可能已经注意到我们需要向程序提供一些输入,例如\(\alpha\)和\(beta\)。我们通过使用终端输入这些数据来实现这一点。
  • 现在,是时候使用一些高级的 GUI 工具了。OpenCV 为您提供了一些 GUI 实用程序(highgui 模块)。一个例子就是轨迹条
  • 在本教程中,我们将修改之前的两个程序,使它们从轨迹条获取输入信息。

目标

在本教程中,您将学习如何:

代码

让我们修改在教程 使用 OpenCV 添加(混合)两张图像 中编写的程序。我们将让用户使用轨迹条输入\(\alpha\)值。

解释

我们只分析与轨迹条相关的代码。

  • 首先,我们加载两张要混合的图像。
  • 要创建轨迹条,首先必须创建要放置轨迹条的窗口。所以
  • 现在我们可以创建轨迹条了

注意以下内容(C++ 代码)

  • 我们的轨迹条的标签为TrackbarName
  • 轨迹条位于名为线性混合的窗口中。
  • 轨迹条的值将在\(0\)到alpha_slider_max之间(最小限制始终为)。
  • 轨迹条的数值存储在alpha_slider中。
  • 每当用户移动轨迹条时,都会调用回调函数on_trackbar

最后,我们必须为 C++ 和 Python 代码定义回调函数on_trackbar,在 Java 中使用匿名内部类侦听器。

注意(C++ 代码)

  • 我们使用alpha_slider(整数)的值来获取alpha的双精度值。
  • 每次用户移动轨迹条时,都会更新alpha_slider
  • 我们将src1src2distalphaalpha_sliderbeta定义为全局变量,以便可以在任何地方使用它们。

结果

  • 我们的程序产生以下输出
  • 作为练习,您还可以为在更改图像的对比度和亮度!中制作的程序添加两个轨迹条。一个轨迹条用于设置\(\alpha\),另一个用于设置\(\beta\) 。输出可能如下所示