在C++使用OpenCV库创建一个带滚动条的窗口,用于动态调整图像的亮度

这篇具有很好参考价值的文章主要介绍了在C++使用OpenCV库创建一个带滚动条的窗口,用于动态调整图像的亮度。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

QuickDemo.cpp

#include<quick_opencv.h>

//创建一个带滚动条的窗口,用于动态调整图像的亮度
static void on_track(int position, void* userdata) //回调函数:当滚动条的位置改变时被自动调用的回调函数
//position:滚动条的当前位置; userdata:用户提供的数据的指针,在这个例子中,它被用来传递原始图像。
{
	Mat image = *((Mat*)userdata);//从userdata获取原始图像
	Mat dst = Mat::zeros(image.size(), image.type());//创建一个与原始图像同样大小和类型的零矩阵dst,用于存放调整亮度后的结果。
	Mat m = Mat::zeros(image.size(), image.type());//滑动条当前的值,这代表要增加的亮度值。
	m = Scalar(position, position, position);
	add(image, m, dst);
	imshow("亮度调整", dst);
}

void QuickDemo::tracking_bar_demo(Mat &image) //设置滚动条
{
	namedWindow("亮度调整", WINDOW_AUTOSIZE);
	
	int lightness = 50;//表示滚动条的初始位置
	int max_val = 100;//用户可以选择的亮度调整的最大范围
	
	createTrackbar("Value Bar:", "亮度调整", &lightness, max_val, on_track,(void*)(&image));//使用createTrackbar创建一个滚动条,命名为"Value Bar:",并关联on_track回调函数。当用户移动滚动条时,on_track会被调用,根据滚动条的位置调整图像的亮度。
	on_track(lightness, &image);//手动调用on_track函数以初始亮度值(50)显示图像,这确保了在滚动条创建时图像能够以初始亮度值被正确显示。
}

quick_opencv.h

#include<opencv2\opencv.hpp>
using namespace cv;
class QuickDemo{
    public:
		void tracking_bar_demo(Mat &image);//滚动轴

main.cpp

#include<opencv2/opencv.hpp>
#include<quick_opencv.h>
#include<iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
	
	//读取并显示图像,如果imread返回的Mat对象(src)是空的,打印错误消息并退出程序。
	Mat src = imread("C:/Users/WangYinning/Desktop/opencv-0/win.png");//B G R 蓝绿红
	if (src.empty())
	{
		printf("could not find the image...\n");
		return -1;
	}
	namedWindow("原图", WINDOW_FREERATIO);//创建一个可以自由调整比例的窗口
	imshow("原图", src);

	//创建QuickDemo类的实例qd
	QuickDemo qd;
	//滚动轴
	qd.tracking_bar_demo(src);
	
	//等待用户输入并清理资源
	waitKey(0);
	destroyAllWindows();
	return 0;
}

在C++使用OpenCV库创建一个带滚动条的窗口,用于动态调整图像的亮度,opencv,c++,opencv,开发语言
在C++使用OpenCV库创建一个带滚动条的窗口,用于动态调整图像的亮度,opencv,c++,opencv,开发语言在C++使用OpenCV库创建一个带滚动条的窗口,用于动态调整图像的亮度,opencv,c++,opencv,开发语言

在C++使用OpenCV库创建一个带滚动条的窗口,用于动态调整图像的亮度,opencv,c++,opencv,开发语言文章来源地址https://www.toymoban.com/news/detail-826978.html

到了这里,关于在C++使用OpenCV库创建一个带滚动条的窗口,用于动态调整图像的亮度的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于flink滚动窗口下数据乱序+倾斜,allowedLateness的一个坑

    目录 前言         滚动窗口(Tumbling Windows)         allowedLateness 场景描述 数据倾斜问题解决 输出结果偏差问题         思考 输出结果偏差解决 扩展         滚动窗口的 assigner 分发元素到指定大小的窗口。滚动窗口的大小是固定的,且各自范围之间不重叠。

    2024年02月21日
    浏览(30)
  • 前端调整滚动条的外观样式

    css主要分三个步骤 1、设置滚动条宽度 ::-webkit-scrollbar { width: 5px; } 效果:分别设置50px和5px宽度 2、设置里面小滑块的样式 不设置background你将看不到小滑块,可以通过background设置小滑块的颜色 border-radius设置小滑块的圆角 3、设置导轨的样式,这一步不是必须 设置了background导

    2024年02月15日
    浏览(26)
  • 微信小程序隐藏滚动条的方法

    当小程序页面展示内容超过屏幕高度或宽度,我们想要看到全部内容,这时候就必须用到页面滚动。可是,我们发现滚动页面的滚动条特别的突兀和丑陋,而且参考大部分的小程序都是将滚动条去掉了。那么,我们该怎么去掉滚动条呢? 当展示内容超过页面高度,会触发pa

    2023年04月17日
    浏览(66)
  • vue中鼠标拖动触发滚动条的移动

    在做后端管理系统中,像弹窗或大的表单时,经常会有滚动条的出现,但有些时候如流程、图片等操作时,仅仅使用鼠标拖动滚动条操作不太方便,如果使用鼠标拖拽图片或容器来触发滚动条的移动就比较方便了 如果要实现鼠标辅助触发滚动条的移动,需要借助 mousedown,m

    2024年02月13日
    浏览(28)
  • C++ 使用动态内存创建一个类

    使用动态内存的一个常见原因是允许多个对象共享相同的状态。 例如,假定我们希望定义一个名为 Blob 的类,保存一组元素。与容器不同,我们希望 Blob 对象的不同拷贝之间 共享相同的元素 。即,当我们拷贝一个 Blob 时,原 Blob 对象及其拷贝应该 引用 相同的底层元素。现

    2024年02月01日
    浏览(29)
  • OpenCV:创建窗口,图片显示和保存

    目录 cv2.waitKey() 窗口创建:cv2.namedWindow() 窗口大小调整:cv2.resizeWindow() 窗口显示:cv2.imshow() 关闭窗口:cv2.destroyAllWindows() 图片读取:cv2.imread() 图片保存:cv2.imwrite() 代码示例 waitKey()的基本逻辑:他会在一定时间内等待接收键盘的一个值; 返回值 为键盘按键的ASCII值; dela

    2024年01月19日
    浏览(75)
  • 数字图像处理(实践篇)二十七 Python-OpenCV 滑动条的使用

    目录 1 涉及的函数 2 实践 1 涉及的函数 ⒈ setWindowProperty()用于设置GUI应用程序的属性 参数 : ① 

    2024年01月25日
    浏览(37)
  • 解决小程序和app滚动条的问题--uniapp踩坑

    这是uniapp官方提供的: 属性名 类型 默认值 说明 平台差异说明 show-scrollbar Boolean false 控制是否出现滚动条 App-nvue 2.1.5+ 问题: 小程序和APP都是用使用scroll-view标签,代码相同,但是效果不同,就觉得很离谱,出现了两类情况,有种两权分立的感觉哈,下面是四种测试情况:

    2023年04月08日
    浏览(26)
  • Jenkins 创建一个 job , 用于单独执行脚本

    目录 1.首先,在Jenkins中创建一个新的job 2.之后,会进入配置页面,在配置页面进行配置。  2.1.找到【Build Steps】,下拉菜单中选择「シェルの実行」 (执行Shell) 2.2.之后,会出现シェルスクリプト (Shell Script) 的 Area,在这里录入你想执行的 脚本 3.运行,并查看Log ・设置脚

    2024年02月12日
    浏览(29)
  • 创建一个基本的win32窗口

    (1)向系统注册一个窗体类 (2)根据窗体类创建窗口 (3)进入消息循环 (1)主函数的输入参数 (2) 窗口类 (3) 回调函数

    2024年02月07日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包