//蓝色物体跟踪
#include <opencv2/opencv.hpp>
#include <vector>
using namespace cv;
using namespace std;
int main()
{
VideoCapture cap;
cap.open(0);
if (!cap.isOpened())
{
cout << "capture 0 is not opened!" << endl;
}
int bminH = 100;
int bmaxH = 124;
int bminS = 43;
int bmaxS = 255;
int bminV = 46;
int bmaxV = 255;
vector<Mat> hsvSplit;
while (1)
{
Mat frame;
cap.read(frame);
if (frame.empty())
{
break;
}
Mat temp;
cvtColor(frame, temp, COLOR_BGR2HSV);//转换为HSV空间
split(temp, hsvSplit);
equalizeHist(hsvSplit[2], hsvSplit[2]);
merge(hsvSplit, temp);//对V通道进行直方图均衡化
Mat mtemp;
inRange(temp, Scalar(bminH,bminS,bminV), Scalar(bmaxH,bmaxS,bmaxV), mtemp);
imshow("frame", frame);
imshow("mtemp", mtemp);
int key = waitKey(20);
if (key==27)
{
break;
}
}
return 0;
}