好久没有写博客了,近期在看OpenCV。于是动手写了个简单的RGB调色器,在终端实时输出RGB的值。通过这个程序学习滑动条的使用。程序中主要用到cvCreateTrackbar ,其使用方法例如以下:

cvCreateTrackbar

创建trackbar并将它加入到指定的窗体。

CV_EXTERN_C_FUNCPTR( void (*CvTrackbarCallback)(int pos) );



int cvCreateTrackbar( const char* trackbar_name, const char* window_name,

int* value, int count, CvTrackbarCallback on_change );

trackbar_name

被创建的trackbar名字。

window_name

窗体名字,这个窗体将为被创建trackbar的父对象。

value

整数指针,它的值将反映滑块的位置。这个变量指定创建时的滑块位置。

count

滑块位置的最大值。最小值一直是0。

on_change

每次滑块位置被改变的时候,被调用函数的指针。这个函数应该被声明为void Foo(int); 假设没有回调函数,这个值能够设为NULL。

函数cvCreateTrackbar用指定的名字和范围来创建trackbar(滑块或者范围控制),指定与trackbar位置同步的变量。而且指定当trackbar位置被改变的时候调用的回调函数。

被创建的trackbar显示在指定窗体的顶端。

#include "cv.h"
#include "highgui.h"
#include "iostream"
using namespace std; IplImage *image;
int R=0,G=0,B=0; void callback_R(int position)
{
cout<<"("<<B<<","<<G<<","<<R<<")"<<endl;
R=position;
cvSet(image,cvScalar(B,G,R));
cvShowImage("image",image);
} void callback_G(int position)
{
cout<<"("<<B<<","<<G<<","<<R<<")"<<endl;
G=position;
cvSet(image,cvScalar(B,G,R));
cvShowImage("image",image);
}
void callback_B(int position)
{
cout<<"("<<B<<","<<G<<","<<R<<")"<<endl;
B=position;
cvSet(image,cvScalar(B,G,R));
cvShowImage("image",image);
} int main()
{
//IplImage *image;
image=cvCreateImage(cvSize(300,300),IPL_DEPTH_8U,3);
cvZero(image);
cvNamedWindow("image");
cvShowImage("image",image); cvCreateTrackbar("R","image",NULL,225,callback_R);
cvCreateTrackbar("G","image",NULL,225,callback_G);
cvCreateTrackbar("B","image",NULL,225,callback_B); while(1)
{
if(cvWaitKey(0)==27) break;
} return 0;
}

效果:

使用OpenCV滑动条写成的简单调色器,实时输出RGB值的更多相关文章

  1. C++ opencv 滑动条 Trackbary以及处理三通道和单通道图像

    #include <opencv2\core.hpp> #include <opencv2\highgui.hpp> #include <opencv2\imgproc. ...

  2. Android 全局搜索条写成自定义控件-曹永思

    图文: 1.Android 自定义控件的布局文件 2.编写Android 自定义控件的要处理的逻辑代码(曹永思) 3.在调用自定义控件的 Activity的布局文件中调用Android 称之为控件,控 ...

  3. Opencv基础课必须掌握:滑动条做调色盘 -OpenCV步步精深

    滑动条做调色盘 我们来想一下这个程序需要什么,首先需要一个窗口显示一切=.=(︿( ̄︶ ̄)︿废话一样): 说到调色盘除了画板也就是窗口(默认为黑色),调色就要涉及三种颜色 红色Red(我们用R表示), ...

  4. 实现滑动条与表单中的input中的value交互

    最近在写一个考试系统的项目,遇到一些比较有意思的小知识,在这里分享给大家 下面是一个滑动条与input中的value值的交互,即滑动条的颜色会跟随给定input的value值实时变化,虽然表单中的ra ...

  5. Android开发手记(11) 滑动条SeekBar

    安卓滑动条的操作特别简单,通过getProgress()可以获得SeekBar的位置,通过setProgress(int progress)可以设置SeekBar的位置.要想动态获取用户对SeekBa ...

  6. 【转】自定义(滑动条)input[type="range"]样式

    1.如何使用滑动条? 用法很简单,如下所示: <input type="range" value="0"> 各浏览器原始样式如下: Chrome:  ...

  7. 【转】PHP简单拦截器的实现

    最近在看Yii的源代码,收获了不少,这里就是从中得到的启发,而写的一个简单拦截器的实现下面看例子: <?phpclass A{    private $_e = array();       p ...

  8. 利用OpenCV和MFC对话框建设一个有滑动条控制的播放器--转

    (一)问题的提出: OpenCV有一个很简单的播放视频文件并加载滑动条的程序,但是如何用MFC对话框来创建一个有滑动条控制的播放器呢,网络上四处搜索都没有代码可以参考,下的都是些骗子链接文件,很过分, ...

  9. opencv学习之路(6)、鼠标截图,滑动条播放视频

    一.鼠标截图 #include<opencv2/opencv.hpp> #include<iostream> using namespace cv; using namespa ...

随机推荐

  1. IIS设置HTTP To HTTPS

    转自: http://www.cnblogs.com/yipu/p/3880518.html 1.购买SSL证书,参考:http://www.cnblogs.com/yipu/p/3722135.ht ...

  2. Java系列学习(十)-包与权限修饰符

    1.形式参数和返回值的问题 (1)形式参数: A:类名:需要该类的对象 B:抽象类名:需要改类的子类对象 C:接口名:需要该接口的实现对象 (2)返回值类型: A:类名:抽象类名:返回的是该类的对象 ...

  3. CF832B Petya and Exam

    思路: 模拟. 实现: #include <iostream> using namespace std; string a, b; ]; bool solve() { ) return f ...

  4. win10 打开chm文件内容空白如何解决

    win10 打开chm文件内容空白如何解决 .CHM文件是非常常见的帮助文件格式.由于其便携性,很多小说或杂志也会采用chm格式.win7/win8.1/win10系统,由于采用了UAC,致使原本在x ...

  5. servlet得到web应用路径

    package context; import java.io.IOException; import javax.servlet.ServletContext; import javax.servl ...

  6. Centos安装smokeping教程

    Centos安装smokeping教程 一 .安装基本依赖包 ntpdate time.windows.com #64bit rpm -Uhv http://apt.sw.be/redhat/el6/ ...

  7. mysql存储过程之遍历多表记录后插入第三方表中

    自从学过存储过程后,就再也没有碰过存储过程,这是毕业后写的第一个存储过程. 因为项目里设备的种类比较多,分别存在不同的数据表中,java中对应不同的java bean对象,想要统一管理有点困难.最近正 ...

  8. CDR如何使用钢笔工具进行完美抠图?【6·18特惠倒计时!】

    不要以为抠图只能在图像处理软件中实现,矢量图形绘制软件CorelDRAW一样可以,而且方法很多,文章介绍使用CDR钢笔工具抠图的方法. 提示说明: 首先说明一下,CDR中的钢笔工具和其他平面设计软件中 ...

  9. java堆排序实现

    代码如下: public class HeapSort { public static void heapSort(DataWrap[] data) { System.out.println(&quo ...

  10. php 导出Excel 不用安装插件、开启配置

    function export_csv($filename, $data) { header("Content-type:text/csv"); header("Cont ...