zoukankan      html  css  js  c++  java
  • opencv:创建滑动条

    函数原型:

    int createTrackbar(conststring& trackbarname,conststring& winname,int* value,int count,TrackbarCallback onChange=0,void* userdata = 0);

      

    #include <opencv.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, 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 -1; }
        if (!g_srcImage2.data){ printf("读取第二幅图片错误,请确定目录下是否有该图片存在\n"); return -1; }
        // 设置滑动条初值为70
        g_nAlphaValueSlider = 70; // 初始化默认的位置是70
        //创建窗体
        namedWindow(WINDOW_NAME, WINDOW_FULLSCREEN); 
        //在创建的窗体中创建一个滑动条控件
        char TrackbarName[50];
        sprintf(TrackbarName, "透明值%d", g_nMaxAlphaValue);
        createTrackbar(TrackbarName,WINDOW_NAME,/*依附在该名字的窗口下*/ &g_nAlphaValueSlider/*当前的slider位置*/, g_nMaxAlphaValue/*最大值*/, on_Trackbar/*回调函数的名字*/);
        // 结果在回调函数中显示
        on_Trackbar(g_nAlphaValueSlider, 0);
        //按任意键退出;
        waitKey(0);
        
        return 0;
    }

      

    ------------ 转载请注明出处 ------------
  • 相关阅读:
    C#:新邮件监听及搜索
    PHPexcel导入数据的时候出现object解决方法
    selectpage选择订单的时候,订单数量和金额会动态改变
    三、变量的简述
    TP框架where条件和whereOr条件同时使用
    一.OS运行机制
    二.进制简述
    1.go语言入门
    C# Redis学习系列二:Redis基本设置
    C# Redis学习系列一:Redis的认识、下载、安装、使用
  • 原文地址:https://www.cnblogs.com/whlook/p/6476874.html
Copyright © 2011-2022 走看看