2016-06-11 11 views
0

Ich habe ein Video mit einer Seriennummer. Wie auf dem Bild. Wie kann ich mit openCV die Position dieses Benutzers erkennen? Das einzige, was ich brauche, ist den Standort dieses Benutzers zu erkennen. Immer wird dieser Benutzer 12 Nummern haben und weiß sein.Seriennummer Erkennung mit openCV

example

+0

Was auch immer Sie auch 12 hat tun müssen, um den Schriftzug "QATAR AIRWAYS" unterscheiden, die weiße Zeichen. –

+0

Ich muss die 12 Zahlen in der rechten Ecke des Bildes erkennen, die Nummer von 0 bis 9. – user3373406

+0

Wenn der Text immer weiß ist und an der gleichen Stelle angezeigt wird, dann müssen Sie wahrscheinlich OpenCV nicht verwenden. Beschneiden Sie diesen Bildausschnitt, setzen Sie ihn auf einen schwarzen Text und verwenden Sie OCR-Software wie Tesseract, um die Zeichen zu identifizieren. –

Antwort

0

mit Morphological Transformations Sie Standort von Zahlen finden.

versuchen, den Code (kein perfektes Code, es ist nur für den Unterricht)

#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(); 
} 

enter image description here enter image description here

+0

danke das ist sehr gut – user3373406