opencv 滑动条 cvCreateTrackbar()
2015-07-07 13:45
169 查看
typedef void (CV_CDECL *CvTrackbarCallback)(int pos);
/* create trackbar and display it on top of given window, set callback */ CVAPI(int) cvCreateTrackbar( const char* trackbar_name, const char* window_name, int* value, int count, CvTrackbarCallback on_change CV_DEFAULT(NULL));
参数:
trackbar_name 被创建的trackbar名字。
window_name 窗口名字,这个窗口将为被创建trackbar的父对象。
value 整数指针,它的值将反映滑块的位置。这个变量指定创建时的滑块位置。
count 滑块位置的最大值。最小值一直是0。
on_change 每次滑块位置被改变的时候,被调用函数的指针。这个函数应该被声明为void
Foo(int); 如果没有回调函数,这个值可以设为NULL。
函数cvCreateTrackbar用指定的名字和范围来创建trackbar(滑块或者范围控制),指定与trackbar位置同步的变量,并且指定当trackbar位置被改变的时候调用的回调函数。
被创建的trackbar默认显示在指定窗口的顶端,可以通过函数cvGetTrackbarPos来获取trackbar显示的位置信息,以及通过函数cvSetTrackbarPos来重新设置trackbar的显示位置。
程序:首先创建一个窗口用于显示图像,滑动条(trackbar)用于设置阈值,然后对二值化后的图像提取轮廓并绘制轮廓。当控制参数的滑动条变化时,图像被更新
IplImage *g_image=NULL; IplImage *g_gray=NULL; int g_thresh=100; CvMemStorage *g_storage=NULL; void on_trackbar(int){ if(g_storage == NULL) { g_gray=cvCreateImage(cvGetSize(g_image), 8, 1); g_storage=cvCreateMemStorage(0); } else { cvClearMemStorage(g_storage); } CvSeq *contours=0; cvCvtColor(g_image, g_gray, CV_BGR2GRAY); cvThreshold(g_gray, g_gray, g_thresh, 255, CV_THRESH_BINARY); cvFindContours(g_gray, g_storage, &contours); cvZero(g_gray); if (contours) cvDrawContours(g_gray, contours, cvScalarAll(255), cvScalarAll(255), 100); cvShowImage("Contours", g_gray); } int main(void) { g_image = cvLoadImage("lena.jpg"); cvNamedWindow("Contours"); cvCreateTrackbar("Threshold", "Contours", &g_thresh, 255, on_trackbar); on_trackbar(0); cvWaitKey(0); return 0; }
相关文章推荐
- linux的du和df命令
- windows下、apache 2.2 与tomcat 7 通过jk方式实现 负载均衡配置
- UVa 11549 Open Credit System
- Nginx+Tomcat负载均衡之session问题
- 为了提高性能和高可用性,看看大公司如何开发和部署前端代码
- Linux课程_系统配置和日常维护
- Linux远程管理器xshell和xftp使用教程
- opencv cvZero() cvAddWeighted() cvConvertScale()
- shell基础学习-难点重点学习
- zabiix监控磁盘io
- OpenWrt arp 命令发布
- linux的gz解压缩
- linux学习笔记 (十五)less命令
- LVS+KeepAlived,RabbitMQ高可用负载均衡 推荐
- Tomcat集群问题记录
- Linux多网卡上网问题解决方法
- Auto property synthesis will not synthesize property 'delegate'; it will be implemented by its super
- 08-nginx网站的配置过程记录
- Linux Top 命令解析 比较详细
- linux cmd