【给初学者】这里好冷清。。Trackbar 拖动条~
//一堆opencv头文件#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
#include "cvaux.h"
int _tmain(int argc, _TCHAR* argv[])
{
//这句话意思是建立一个窗口,没窗口怎么看图呢? 必须要的第一步!
//虽然写在后面也行,但这句话在较大的程序中不写在第一行可能有BUG,原因未知~~
//括号里src是窗口名,1表示这个窗口是自动确定大小。图有多大窗口就有多大~ (CV_WINDOW_AUTOSIZE的值也就是1)
cvNamedWindow("src",1);
//建立一个图像我现在建立了一个自定义大小的窗口400*400 深度8 通道为3(也就是RGB彩色通道,1是单通道黑白图)
IplImage *src = cvCreateImage(cvSize(400,400),8,3);
//这个教程的重点!!!!!!!!!!!!!!!!!!!滚动条。
//有很多人看着教程也了个在全局的。这里要说其实写在内部2行就成。
//cvCreateTrackbar第一个参数为 拖动条的名字, 第二个为将拖动条建立在哪个窗口, 第三个为拖动条初始化在哪个数值上(别忘加&),第四个没最大值,第五个0(对就是0)
int rect_height = 0;
cvCreateTrackbar("serial","src",&rect_height,100,0);
int target = 0;
for (;;)
{
//因为拖动条要控制图像变化,既然图像会变化就要每一帧前清空图像。否则就如你不要橡皮擦一直在画画一样,越涂越满。
cvZero(src);
//图形显示延迟这是数据上的延迟,而不是时间上的延迟。这样写只是为了好看点。
if (target < rect_height)
{
target++;
}
else if (target > rect_height)
{
target--;
}
double target_percent = target*0.01;
//建立矩形的函数。随着拖动条变化,一个柱状图跟着变化。 最后一个参数为填满这个矩形。
cvRectangle(src,cvPoint(100,400-400*target_percent),cvPoint(300,400),CV_RGB(0,0,255),CV_FILLED);
//显示图像。将第二个参数src的图像显示在第一个名为“src”窗口中
cvShowImage("src",src);
//cvWaitKey为每次循环到这里等待1MS没反应就往下读。 如果为0不是不等待,而是一直等待在这里。将循环卡主。
char c = cvWaitKey(1);
if (c == 27)
{
break;
}
}
//下面两行就一起说了,释放图像内存和释放窗口内存。
cvReleaseImage(&src);
cvDestroyWindow("src");
return 0;
}啰嗦了半天。。 我觉得是挺清晰的。。就看你有耐心看吗。。{:soso_e121:}
纯代码图~ 看的舒服点~
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
#include "cvaux.h"
int _tmain(int argc, _TCHAR* argv[])
{
cvNamedWindow("src",1);
IplImage *src = cvCreateImage(cvSize(400,400),8,3);
int rect_height = 0;
cvCreateTrackbar("serial","src",&rect_height,100,0);
int target = 0;
for (;;)
{
cvZero(src);
if (target < rect_height)
{
target++;
}
else if (target > rect_height)
{
target--;
}
double target_percent = target*0.01;
cvRectangle(src,cvPoint(100,400-400*target_percent),cvPoint(300,400),CV_RGB(0,0,255),CV_FILLED);
cvShowImage("src",src);
char c = cvWaitKey(1);
if (c == 27)
{
break;
}
}
cvReleaseImage(&src);
cvDestroyWindow("src");
return 0;
}
这个版块是很冷清,所以需要您注入新的血液!! Randy 发表于 2012-7-14 13:56 static/image/common/back.gif
这个版块是很冷清,所以需要您注入新的血液!!
我也是只会基本常用的东西~
我来做下推广吧~:lol
麽麽茶㊣ 发表于 2012-7-14 14:18 static/image/common/back.gif
我也是只会基本常用的东西~
我来做下推广吧~
欢迎啊!! T T拖动条我也写了。。但是没人看
重拾opencv中 三水 发表于 2012-7-16 15:49 static/image/common/back.gif
T T拖动条我也写了。。但是没人看
重拾opencv中
1380个人看过呀~ ;P
你写的都太深了,把已经定义好的函数自己又写了遍~
页:
[1]