码迷,mamicode.com
首页 > 其他好文 > 详细

HighGUI图形图像界面初步——滑动条的创建和使用

时间:2018-03-06 21:50:04      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:color   用户数   eof   回调   llb   应用程序   sizeof   weight   void   

---恢复内容开始---

  滑动条是OpenCV动态调节参数特别好用的一种工具,它依附于窗口而存在。由于OpenCV没有实现按钮功能,所以很多时候,我们可以用仅含0-1的滑动条来实现按钮的按下于弹起效果。

1、创建滑动条:createTrackbar()函数

  这个函数往往和一个回调函数配合起来使用。

  C++ : int createTrackbar(const string & trackbarname, const string & winname, int* value, int count, TrackbarCallback onChange=0, void* userdata=0);

  参数说明:

  (1)第一个参数,轨迹条的名称;

  (2)第二个参数,窗口名称;

  (3)第三个参数,表示滑块的初始位置

  (4)第四个参数,表示滑块可达到的上限值。

  (5)第五个参数,这是一个执行回调函数的指针,当滑块位置变化时候这个函数都进行回掉。这个函数原型必须为:void XXXX(int,void*),其中第一个为轨迹位置,第二个为用户数据。NULL表示没有回调函数。

  (6)用户传给回掉函数的数据,用来处理轨迹时间。如果使用第三个参数value实参是全局变量的话,完全可以不用去管这个userdata参数。

 

  

// Trackbar.cpp: 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <opencv2\opencv.hpp>
#include "opencv2\highgui\highgui.hpp"

using namespace cv;

#define WINDOW_NAME "【线性混合示例】"

const int g_nMaxAlphaValue = 100;
int g_nAlphaValueSlider;
double g_dAlphaValue;
double g_dBetaValue;

Mat g_srcImage1;
Mat g_srcImage2;
Mat g_dstImage;


void on_TrackBar(int, void*)
{
    g_dAlphaValue = (double)g_nAlphaValueSlider / g_nMaxAlphaValue;
    g_dBetaValue = (1.0 - g_dAlphaValue);
    addWeighted(g_srcImage1, g_dAlphaValue,g_srcImage2,g_dBetaValue,0.0,g_dstImage);
    imshow(WINDOW_NAME,g_dstImage);
}




int main()
{
    g_srcImage1 = imread("D:\\resuouce\\image\\scenic1.jpg");
    g_srcImage2 = imread("D:\\resuouce\\image\\scenic.jpg");
    if (!g_srcImage1.data)
    {
        printf("读取第一张图片失败\n");
        return -1;
    }

    if (!g_srcImage2.data)
    {
        printf("读取第二张图片失败\n");
        return -1;
    }

    g_nAlphaValueSlider = 70;
    namedWindow(WINDOW_NAME,1);
    char TrackbarName[50];
    memset(TrackbarName,\0,sizeof(TrackbarName));
    sprintf_s(TrackbarName,"透明值%d", g_nMaxAlphaValue);
    createTrackbar(TrackbarName, WINDOW_NAME, &g_nAlphaValueSlider, g_nMaxAlphaValue, on_TrackBar);
    on_TrackBar(g_nAlphaValueSlider,0);
    waitKey(0);
        
    return 0;
}

 

 

---恢复内容结束---

HighGUI图形图像界面初步——滑动条的创建和使用

标签:color   用户数   eof   回调   llb   应用程序   sizeof   weight   void   

原文地址:https://www.cnblogs.com/houjun/p/8516533.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!