代码解释具体算法// Find 轮廓 of possibles plates 求轮廓。求出图中所有的轮廓。这个算法会把全图的轮廓都计算出来,因此要进行筛选。 MatVector contours = new MatVector(); findContours(img_threshold, contours, // a vector of contours CV_RETR_EXTERNAL, // 提取外部轮廓 CV_CHAIN_APPROX_NONE); // all pixels of each contours Mat result = new Mat(); // 筛选。对轮廓求最小外接矩形,然后验证,不满足条件的淘汰。 Vector<RotatedRect> rects = new Vector<RotatedRect>(); for (int i = 0; i < contours.size(); ++i) { RotatedRect mr = minAreaRect(contours.get(i)); if (verifySizes(mr)) rects.add(mr); }
时间: 2024-03-29 15:41:38 浏览: 12
这段代码是用于在一张二值化的图像中寻找所有可能的车牌轮廓,并进行筛选。具体算法如下:
1. 使用 OpenCV 的 findContours 函数在二值化图像中寻找所有轮廓。
2. 使用 CV_RETR_EXTERNAL 参数表示只寻找最外边的轮廓。
3. 使用 CV_CHAIN_APPROX_NONE 参数表示保留所有轮廓上的像素点。
4. 对于每个轮廓,使用 minAreaRect 函数求出其最小外接矩形。
5. 使用 verifySizes 函数对每个最小外接矩形进行验证,不满足条件的被淘汰。
6. 最终,被筛选出来的最小外接矩形会被保存在 rects 向量中。
其中,verifySizes 函数的作用是检查一个最小外接矩形是否符合车牌的大小要求。具体实现可以根据具体需求进行修改。