camshift算法中,用到了cvInRangeS函数,作为初学者,对这个函数很不理解,所以就写了个程序演示效果,加强理解。
代码:
#include "cv.h"
#include "highgui.h"
#include<ctype.h>
int hmax=0,hmin=0,vmin=0,vmax=0,smin=0,smax=0;
int main(int argc,char **argv)
{
printf("此程序将输入的图片由一般的RGB色系转化为HSV色系,然后对图片取掩膜板,\
可以对掩膜板的H、S、V三个元素取不同的范围进行测试并查看, \
效果,拖动滑动条即可选择范围!按 q 键退出测试!\n\n");
if(argc<=1)
{
std::cout<<"Error:Please Load a picture!"<<std::endl;
return 0;
}
IplImage *image,*hsv,*mask;
//创建窗口
cvNamedWindow("image",CV_WINDOW_AUTOSIZE);
cvNamedWindow("hsv",CV_WINDOW_AUTOSIZE);
cvNamedWindow("mask",CV_WINDOW_AUTOSIZE);
cvNamedWindow("Track",CV_WINDOW_AUTOSIZE);
cvCreateTrackbar("Hmin","Track",&hmin,256,0);
cvCre