我有在二进制阈值矩阵中显示为白色晕的对象。我用下面的代码填充白色的光晕,这样我就可以在矩阵中有实心的白色圆圈了:
void processBinary(Mat& binaryMat) {
Mat clone;
binaryMat.copyTo(clone);
vector<vector<Point>> contours;
findContours(clone, contours, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE);
if (!contours.empty()) {
drawContours(binaryMat, contours, 0, Scalar(255), CV_FILLED);
}
}
如果我在相机馈送中只有一个对象,则此操作有效。然而,对于多个相同的物体,它不会对任何物体进行填充,除非我从场景中删除除一个物体外的所有物体。我如何修复代码,使每个对象被填充为一个白色的实心圆?
drawContours方法循环通过所有轮廓吗?控件基本上是作为链表类型给出的,必须通过调用while(contours!=null)来循环获取它们。.…contours = contours. vnext;//或HNext取决于你的代码