opencv:创建滑动条
函数原型:
int createTrackbar(conststring& trackbarname,conststring& winname,int* value,int count,TrackbarCallback onChange=,void* userdata = );
#include <opencv.hpp>
using namespace cv;
#define WINDOW_NAME "线性混合示例" // 为窗口标题定义的宏
// ------------------ 全局变量声明部分 ------------------//
const int g_nMaxAlphaValue = ; // Alpha 的最大值
int g_nAlphaValueSlider; // 滑动条对应的变量
double g_dAlphaValue;
double g_dBetaValue;
// 声明图像的变量 //
Mat g_srcImage1, g_srcImage2, g_dstImage;
//======================================================//
// ------------------- 响应滑动条的回调函数 ----------------- //
void on_Trackbar(int, void*)
{
// 求出当前alpha值相对于最大值的比例
g_dAlphaValue = (double)g_nAlphaValueSlider / g_nMaxAlphaValue;
// 则beta值为1减去alpha的值
g_dAlphaValue = (1.0 - g_dAlphaValue);
// 根据alpha和beta进行线性混合
addWeighted(g_srcImage1, g_dAlphaValue, g_srcImage2, g_dBetaValue, 0.0, g_dstImage);
// 显示效果图
imshow(WINDOW_NAME, g_dstImage);
}
int main(int argc, char** argv)
{
// 加载图像 两个图像的尺寸需要相同
g_srcImage1 = imread("1.jpg");
g_srcImage2 = imread("2.jpg");
if (!g_srcImage1.data){ printf("读取第一幅图片错误,请确定目录下是否有该图片存在\n"); return -; }
if (!g_srcImage2.data){ printf("读取第二幅图片错误,请确定目录下是否有该图片存在\n"); return -; }
// 设置滑动条初值为70
g_nAlphaValueSlider = ; // 初始化默认的位置是70
//创建窗体
namedWindow(WINDOW_NAME, WINDOW_FULLSCREEN);
//在创建的窗体中创建一个滑动条控件
char TrackbarName[];
sprintf(TrackbarName, "透明值%d", g_nMaxAlphaValue);
createTrackbar(TrackbarName,WINDOW_NAME,/*依附在该名字的窗口下*/ &g_nAlphaValueSlider/*当前的slider位置*/, g_nMaxAlphaValue/*最大值*/, on_Trackbar/*回调函数的名字*/);
// 结果在回调函数中显示
on_Trackbar(g_nAlphaValueSlider, );
//按任意键退出;
waitKey(); return ;
}
opencv:创建滑动条的更多相关文章
- OpenCV创建轨迹条,图片像素的访问
.OpenCV创建进度条以及图像对比度,亮度调整 1.创建轨迹条createTrackbar() 函数原型C++: intcreateTrackbar(conststring& trackba ...
- C++ Opencv createTrackbar()创建滑动条实现对比度、亮度调节及注意事项
一.对比度.亮度概念普及 1.1对比度 对比度指的是一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量,差异范围越大代表对比越大,差异范围越小代表对比越小.对比度对视觉效果的影响非常关键,一般 ...
- Opencv关于滑动条bar操作的实例
代码如下: //////////////////////////////////////////////////////////////////////// // // 该程序产生一个窗口10s 如果 ...
- opencv:通过滑动条调节亮度和对比度
示例代码: #include <opencv.hpp> using namespace cv; using namespace std; void on_change(int, void* ...
- OPENCV中滑动条的使用
//文中存在两种不同的图像的平滑类型.一类是彩色图像,还有一类是灰度图像.经证明,两种均能够 #include<cv.h> #include<highgui.h> #inclu ...
- opencv —— createTrackbar、getTrackbarPos 滑动条的创建和使用
创建滑动条:createTrackbar 函数 createTrackbar 函数用于创建一个可以调整数值的滑动条,并将滑动条附加在指定的窗口上. int createTrackbar(const s ...
- HighGUI图形图像界面初步——滑动条的创建和使用
---恢复内容开始--- 滑动条是OpenCV动态调节参数特别好用的一种工具,它依附于窗口而存在.由于OpenCV没有实现按钮功能,所以很多时候,我们可以用仅含0-1的滑动条来实现按钮的按下于弹起效果 ...
- 滑动条 Trackbar[OpenCV 笔记9]
OpenCV中没有实现按钮的功能,我们可以利用滑动条来实现按钮功能. , ); trackbarname 轨迹条的名字. winname 窗口的名字,轨迹条会依附在这个窗口上. value 一个指向整 ...
- 利用OpenCV和MFC对话框建设一个有滑动条控制的播放器--转
(一)问题的提出: OpenCV有一个很简单的播放视频文件并加载滑动条的程序,但是如何用MFC对话框来创建一个有滑动条控制的播放器呢,网络上四处搜索都没有代码可以参考,下的都是些骗子链接文件,很过分, ...
随机推荐
- CentOS 6.5 QtCreator启动时 dbus-1的错误解决方法
启动QtCreator提示:dbus_connection_can_send_type的错误, QString::arg: Argument missing: 无法解析dbus_connection_ ...
- MariaDB备份之XtraBackup
一.XtraBackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtrabd数据库进行热备的工具.特点: (1)备份过程快速.可靠: ...
- 基本运算符与流程控制(Day5)
一 运算符 1.算数运算 2.比较运算 3.赋值运算 4.逻辑运算 and注解: 在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值:而是,返回它们实际 ...
- MiniUI级联
OnCellCommitEdit: function (e) { var grid = e.sender; var record = e.record; ...
- TCP/IP 网络结构
- kmp模板 && 扩展kmp模板
kmp模板: #include <bits/stdc++.h> #define PB push_back #define MP make_pair using namespace std; ...
- JS中的正则应用
如果还未掌握正则基础知识可先看另一篇:正则笔记-忘记就来看 创建方法: 直接量语法:/pattern/attributes 创建 RegExp 对象的语法:new RegExp(pattern, at ...
- What is CRC and how does it works?
What is CRC and how does it works? CRC errors refer to Layer 1 or 2 issues. Two things you should ch ...
- UIScrollView监听静止的数种情况
1.直接通过block -(void)testInBlock { //通过block监听 [UIView animateWithDuration:1.0 animations:^{ self.scro ...
- JAVA基础补漏--static
静态方法不能访问非静态变量的原因 静态的方法和变量在内存中先产生,非静态的后产生,在静态调用时非静态可能还未创建,所以会发生错误,故不能访问. static的内存图 静态代码块 static { Sy ...