首页 > 其他 > 详细

opencv 滑动条的创建和使用

时间:2019-02-27 18:31:30      阅读:321      评论:0      收藏:0      [点我收藏+]

 

CV_EXPORTS int createTrackbar(
                                const string& trackbarname, // 轨迹条名称
                                const string& winname, // 窗体名称
                                int* value, // 指向整形的指针,滑块的位置,
                                 int count, // 滑块最大值,最小值始终为0

TrackbarCallback onChange = 0, // 滑块位置改变时,这个函数都会回调

void* userdata = 0 // 这个参数是用户传给回调函数的数据 // 如果第三个参数为全局变量,这个参数可以忽略 );
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;

#define WINDOW_NAME "【滑动条的创建&线性混合示例】"        //为窗口标题定义的宏 

const int g_nMaxAlphaValue = 100;//Alpha值的最大值
int g_nAlphaValueSlider;//滑动条对应的变量
double g_dAlphaValue;
double g_dBetaValue;

//声明存储图像的变量
Mat g_srcImage1;
Mat g_srcImage2;
Mat g_dstImage;


void on_Trackbar( int, void* )
{
    //求出当前alpha值相对于最大值的比例
    g_dAlphaValue = (double) g_nAlphaValueSlider/g_nMaxAlphaValue ;
    //则beta值为1减去alpha值
    g_dBetaValue = ( 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("读取第一幅图片错误,请确定目录下是否有imread函数指定图片存在~! \n");
        return -1; 
    }
    if(!g_srcImage2.data )
    {
        printf("读取第二幅图片错误,请确定目录下是否有imread函数指定图片存在~!\n");
        return -1;
    }

    //设置滑动条初值为70
    g_nAlphaValueSlider = 70;

    //创建窗体
    namedWindow(WINDOW_NAME, 1);

    //在创建的窗体中创建一个滑动条控件
    char TrackbarName[50];
    sprintf( TrackbarName, "透明值 %d", g_nMaxAlphaValue );

    createTrackbar( TrackbarName, WINDOW_NAME, &g_nAlphaValueSlider, g_nMaxAlphaValue, on_Trackbar );

    //结果在回调函数中显示
    on_Trackbar( g_nAlphaValueSlider, 0 );

    //按任意键退出
    waitKey(0);

    return 0;
}

技术分享图片

技术分享图片

技术分享图片

 

opencv 滑动条的创建和使用

原文:https://www.cnblogs.com/hehe2014/p/10445775.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!