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

OpenCV 滑动条调整图像亮度

一、知识点
1、int createTrackbar(const String & trackbarname, const String & winname, int * value, int count, TrackbarCallback onChange = 0, void * userdata = 0);
  (1)、创建一个滑动条并将其附在指定窗口上。
  (2)、参数说明:
      trackbarname: 创建的滑动条显示名称。
      winname: 包含滑动条的窗口名称。
      value: 将由滑动条更改的整数值的指针。
      count: 滑动条的最大位置。
      onChange: 回调函数,每次滑块改变位置时会调用此函数。 函数原型void Foo(int, void *),第一个参数是滑动条位置,第二个参数是用户数据。 如果为nullptr,则不会调用回调函数,但是value仍然自动更新。
      userdata: 用户数据,传递给回调函数。


二、示例代码: 通过滑动条来调整图像亮度

#include <iostream>
#include <opencv2/opencv.hpp>void onTrackAdd(int value, void * pSrc)
{cv::Mat src = ((cv::Mat *)pSrc)->clone();cv::Mat temp = cv::Mat::zeros(src.size(), CV_8UC3);temp = cv::Scalar(value, value, value);cv::Mat dst;cv::add(src, temp, dst);cv::imshow("亮度增加", dst);
}void onTrackSub(int value, void * pSrc)
{cv::Mat src = ((cv::Mat *)pSrc)->clone();cv::Mat temp = cv::Mat::zeros(src.size(), CV_8UC3);temp = cv::Scalar(value, value, value);cv::Mat dst;cv::subtract(src, temp, dst);cv::imshow("亮度减少", dst);
}int main()
{cv::Mat src = cv::imread("../images/8.png");if (src.empty()){std::cout << "load src image error..." << std::endl;return -1;}cv::imshow("原始图像", src);int valueAdd = 50;cv::namedWindow("亮度增加", cv::WINDOW_AUTOSIZE);cv::createTrackbar("亮度+", "亮度增加", &valueAdd, 100, onTrackAdd, &src);int valueSub = 50;cv::namedWindow("亮度减少", cv::WINDOW_AUTOSIZE);cv::createTrackbar("亮度-", "亮度减少", &valueSub, 100, onTrackSub, &src);cv::waitKey(0);return 0;
}

http://www.xdnf.cn/news/10855.html

相关文章:

  • 相机camera开发之差异对比核查一:测试机和对比机的硬件配置差异对比
  • 国标GB28181设备管理软件EasyGBS视频平台筑牢文物保护安全防线创新方案
  • Unity 性能优化终极指南 — GameObject 篇
  • 从零开始,学会上传,更新,维护github仓库
  • KV Cache:大语言模型推理加速的核心机制详解
  • AD转嘉立创EDA
  • Mac电脑_钥匙串操作选项变灰的情况下如何删除?
  • 机器学习——使用多个决策树
  • 从仿射矩阵得到旋转量平移量缩放量
  • MySQL 全量、增量备份与恢复
  • HJ73 计算日期到天数转换
  • 解决MyBatis参数绑定中参数名不一致导致的错误问题
  • 剑指offer14_二进制中1的个数
  • 谷歌地图免费下载手机版
  • OpenLayers 地图标注之Popup标注
  • 符号执行与SemFix、DirectFix 、Angelix的主要思想
  • 【Bluedroid】蓝牙启动之sdp_init 源码解析
  • Matlab回归预测大合集又更新啦!新增2种高斯过程回归预测模型,已更新41个模型!性价比拉满!
  • SQL 筛选出在表1但不在表2中的数据
  • 消费者行为变革下开源AI智能名片与链动2+1模式S2B2C商城小程序的协同创新路径
  • 大模型:从基座构建到应用落地--预训练与后训练及个人解析-2025.6
  • 【原神 × 二分查找】找出圣遗物强化到暴击的最小尝试次数!
  • vLLM:让大语言模型推理更高效的新一代引擎 —— 原理详解一
  • String 学习总结
  • WPS 利用 宏 脚本拆分 Excel 多行文本到多行
  • 数据可视化有哪些步骤?2025高效落地指南
  • 机器学习与深度学习08-随机森林02
  • 记我的第一个深度学习模型尝试——MNIST手写数字识别
  • 可视化大屏工具对比:GoView、DataRoom、积木JimuBI、Metabase、DataEase、Apache Superset 与 Grafana
  • 使用Redis作为缓存优化ElasticSearch读写性能