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;
    }

      

    ------------ 转载请注明出处 ------------
  • 相关阅读:
    十个利用矩阵乘法解决的经典题目
    POJ-3070-Fibonacci
    java 正则表达式-忽略大小写与多行匹配
    【MM 非生产性物资采购】SAP实施项目中采购员在非生产性采购申请审批流中的角色安排(转)
    业务调研杂谈(转)
    重置报表输出选择
    【MM 配额管理】Quota Arrangement 配额管理(二)
    【MM 配额管理】Quota Arrangement 配额管理
    SDUST第十一次oj作业液晶显示问题
    如何在js代码中调用java,并将js的变量赋值给java
  • 原文地址:https://www.cnblogs.com/whlook/p/6476874.html
Copyright © 2011-2022 走看看