zoukankan      html  css  js  c++  java
  • Opencv关于滑动条bar操作的实例

    代码如下:

     1 ////////////////////////////////////////////////////////////////////////
     2 //
     3 // 该程序产生一个窗口10s 如果在10s内滑动条移动到20则将lena.jpg图片加载到
     4 // 窗口显示 满10s窗口销毁
     5 //
     6 ////////////////////////////////////////////////////////////////////////
     7 #include <stdlib.h>
     8 #include <stdio.h>
     9 #include <math.h>
    10 #include <cv.h>
    11 #include <highgui.h> 
    12 
    13 
    14 void trackbarHandler()    //自定义滑动条消息响应函数
    15 {
    16     IplImage* img = 0;    //定义图像文件指针,指向载入的原始图像
    17     char Image_Filename[20];  //输入图像文件的文件名
    18     int pos = cvGetTrackbarPos("bar1","mainWin"); //获取滑动条当前的位置
    19 
    20     //如果位置为20就显示图片
    21     if(pos == 20)
    22     {
    23         printf("Trackbar position: %d
    ",pos);
    24         printf("Please input the filename of image:
    ");
    25         scanf("%s",Image_Filename);    
    26 
    27 
    28         img=cvLoadImage(Image_Filename,0); //载入图像函数,第一个参数为图像名称.第二个参数为辅助参数,
    29                         //有正,零,负三种值.正数表示以三通道图像载入(三通道即一个像素用3个字节表示),0表示
    30                         //以单通道载入图像,负数代表载入图像的通道数由图像本身决定.
    31 
    32         if(!img)
    33         {
    34             printf("Could not load image file: %s
    ",Image_Filename);
    35             exit(0);
    36         } 
    37 
    38 
    39         cvShowImage("mainWin", img ); //在之前创建的mainWin窗口中显示图像 
    40         cvReleaseImage(&img);  //释放图像文件指针
    41         return;
    42     }
    43     
    44 }
    45 
    46 int main(int argc, char *argv[])
    47 {
    48     int trackbarVal=10;
    49     int maxVal=50;
    50 
    51     cvNamedWindow("mainWin", 0);   //创建一个名称为mainWin的窗口,用于显示图像.CV_WINDOW_AUTOSIZE值为1    
    52                     //表示固定窗口大小,若第二个参数为0表示窗口大小可变,图像也会随着窗口的大小而改变
    53 
    54     cvMoveWindow("mainWin", 200, 200);  //设置窗口的位置,第一个参数为窗口的名字,后面两个参数为窗口显示的位置
    55 
    56 
    57     cvCreateTrackbar("bar1", "mainWin", &trackbarVal ,maxVal , trackbarHandler);//在窗口mainWin上创建一个bar1滑动条,
    58                                             //设置滑动条起始位置为10,最大值为50
    59 
    60                                             //定义滑动条滑动时的响应函数为trackbarHandler
    61     printf("The initial position is %d
    
    
    ",trackbarVal);  //输出滑动条起始位置
    62 
    63     cvWaitKey(10000);  //窗口仅仅产生10s就销毁
    64 
    65     return 0;
    66 }


    运行结果如下:

  • 相关阅读:
    把eclipse 3.4的插件移动到独立目录中
    Crest大家都来山寨一个GObject吧
    c# 扩展方法奇思妙用性能篇一:扩展方法性能初测
    [幽默]今天看了几页c语言入门,想写个ERP, 帮我看看 技术上还差些什么?
    c# 扩展方法奇思妙用高级篇一:改进 Scottgu 的 "In" 扩展
    [个人]我的积分与排名日志
    反驳 老赵 之 “伪”递归
    c# 扩展方法奇思妙用变态篇一:由 Fibonacci 数列引出 “委托扩展” 及 “递推递归委托”
    c# 扩展方法奇思妙用高级篇五:ToString(string format) 扩展
    瑞士军刀 VS 单一职责原则
  • 原文地址:https://www.cnblogs.com/vpoet/p/4659613.html
Copyright © 2011-2022 走看看