我想检查前轮是否被某种颜色包围(在这种情况下为绿色),或者是否被足够的某种颜色的像素包围。
我颠倒了遮罩,将对象周围的图像转换为HSV颜色空间并通过绿色过滤:
Rect ballBBox = boundingRect(contour);
Mat ballMask(mask, ballBBox);
Mat ballImg(img, ballBBox);
Mat imgSurroundingBall;
Mat ballMaskInv;
bitwise_not(ballMask, ballMaskInv),
ballImg.copyTo(imgSurroundingBall, ballMaskInv);
Mat imgSurroundingBallHSV;
cvtColor(imgSurroundingBall, imgSurroundingBallHSV, CV_BGR2HSV);
Scalar greenLower = Scalar(35, 100, 20);
Scalar greenUpper = Scalar(70, 255, 255);
Mat areaAroundBall;
inRange(imgSurroundingBallHSV, greenLower, greenUpper, areaAroundBall);
我的想法之一是在拨号后找到类似于ballMask
和areaAroundBall
图像的轮廓。但是,由于我的工作量很大,而且找不到类似的人,因此效果不佳。
有什么想法吗?