使用 openCV 进行序列号检测

Serial Number Detection with openCV

我有一个带有序列号的视频。就像图片中那样。我如何使用 openCV 检测该赞助人的位置。我唯一需要做的就是检测这位赞助人的位置。这位赞助人总是有 12 个号码,并且是白色的。

example

使用 Morphological Transformations 您可以找到号码的位置。

试试下面的代码(不是完美的代码,仅供参考)

#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
    Mat src=imread("dnpaP.jpg");
    Mat thresh = src.clone();

    dilate(thresh,thresh,Mat(),Point(-1,-1), 5);
    erode(thresh,thresh,Mat(),Point(-1,-1), 5);
    cvtColor(thresh, thresh, COLOR_BGR2GRAY);
    threshold(thresh, thresh, 200, 255, THRESH_BINARY);
    erode(thresh,thresh,Mat(),Point(-1,-1), 3);
    dilate(thresh,thresh,Mat(),Point(-1,-1), 3);

    vector<vector<Point> > contours;

    findContours(thresh.clone(), contours, RETR_LIST, CHAIN_APPROX_SIMPLE);

    for( size_t i = 0; i< contours.size(); i++ )
    {
        Rect boundingRect_ = boundingRect( contours[i] );
        if(boundingRect_.width > boundingRect_.height * 12)
        rectangle(src,boundingRect_,Scalar(0,0,255),2);
    }
    imshow("thresh",thresh);
    imshow("src",src);
    waitKey();
}