C++
OpenCV
功能:实现对颜色追踪
单说一种颜色来识别的代码
首先转换HSV空间,找到响应的阈值
使用inRange()函数
inRange() 函数实现的是多个通道的二值化
#if 0
#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{
VideoCapture capture;
Mat frame;
frame= capture.open("C:\\Users\\W\\Desktop\\mulballs.mp4");
if (!capture.isOpened())
{
printf("can not open video file \n");
return -1;
}
Mat dst;
Mat kernel;
//开操作处理
kernel = getStructuringElement(MORPH_RECT, Size(5, 5));
std::vector<std::vector<Point>> contours;
std::vector<Vec4i> hireachy;
Rect rect;
Point2f center;
float radius = 20;
while (capture.read(frame))
{
Mat hsv;
cvtColor(frame, hsv, COLOR_BGR2HSV);
inRange(hsv, Scalar(0, 40, 40), Scalar(10, 255, 250), dst);
//开操作
morphologyEx(dst, dst, MORPH_OPEN, kernel);
morphologyEx(dst, dst, MORPH_OP