有没有人有任何使用OpenCV / C ++跟踪多种颜色的例子?我发现了一些python而不是C ++。我设法通过使用:
跟踪黄色IplImage *imgHSV= cvCreateImage (cvGetSize(img),8,3);
cvCvtColor(img,imgHSV,CV_BGR2HSV);
IplImage*imgThreshed =cvCreateImage(cvGetSize(img),8,1);
//track yellow
cvInRangeS(imgHSV,cvScalar(20,100,100), cvScalar(30,255,255), imgThreshed);
//saved the points
double area=cvGetCentralMoment(moment, 0, 0);
double moment10=cvGetSpatialMoment(moment, 1, 0);
double moment01=cvGetSpatialMoment(moment, 0, 1);
我正在尝试用蓝色做类似的事情:
cvInRangeS(imgHSV,cvScalar(100,100,100), cvScalar(120,255,255), imgblue);
然后保存点数:
double area1=cvGetCentralMoment(moment1, 0, 0);
double moment05=cvGetSpatialMoment(moment1, 1, 0);
double moment02=cvGetSpatialMoment(moment1, 0, 1);
//画线
static int posF=0;
static int posE=0;
posE=moment05/area1;
posF=moment02/area1;
int lastF=posF;
int lastE=posE
if (lastF>=0 && lastE>=0 && posF>=0 && posE>=0){
cvLine(imgScribble, cvPoint(posF,posE),cvPoint(lastF,lastE), cvScalar(255,0,0),16);
}
蓝色的要点是我遇到的麻烦。有关跟踪多种颜色和保存积分的建议吗? ![黄线跟踪黄色,蓝色点代表蓝色,但它们也应该是线1