2017-12-19 5 views
0

Ich habe das folgende Stück Code, der Tesseract-OCR (Python Wrapper-Tesserocr) verwendet, um die Schriftart-Attribute aus Bildern mit Text zu extrahieren.Python Schleife zum Extrahieren von Feature aus Bild nicht vollständig ausgeführt

for image in image_list: 
    print "Starting for ",image 
    font_attribute_list = [] 
    with PyTessBaseAPI(oem=0) as api: 
     image1 = PIL.Image.open(path+image) 
     api.SetImage(image1) 
     api.Recognize() 
     iterator = api.GetIterator() 
     font_attribute_list.append(iterator.WordFontAttributes()) 
    word_font_attribute_dataframe = word_font_attribute_dataframe.append([font_attribute_list[0]], ignore_index=True) 
    image1.close() 

Dies läuft nur für ein paar Bilder und diese Zahl ändert sich ständig. Manchmal läuft es für ungefähr 13-14 Bilder, manchmal für ungefähr 100 und stoppt dann einfach. Kein Fehler oder irgendetwas. Es endet einfach. Manchmal gibt es den Fehler "Segmentierung Fehler (Core Dumped)". Ich benutze Ubuntu 14.04.

Wie kann ich das beheben?

Antwort

0

das klingt alles wie Spaß. Normalerweise, wenn Sie einen Segmentierungsfehler bekommen, bedeutet das, dass Sie zu viele Dinge auf einmal machen wollen und es Ihr Gedächtnis stört. Es ist möglich, dass Ihr Code nicht ohne Fehler stoppt, er könnte immer noch laufen, nur sehr langsam.

Es sieht so aus, als ob Sie in jeder Iteration dieser Schleife ein Bild öffnen, also verbrauchen möglicherweise alle geöffneten Bilder Ihren Arbeitsspeicher. Sie könnten versuchen, das Bild vor dem Ende der Schleife zu schließen.

+0

Ich habe versucht, sie auch zu schließen, immer noch den Fehler. Es läuft nicht sehr langsam, es endet für ein Bild in etwa einer Sekunde und stoppt nur nach wie 13 Bilder, manchmal 100 Bilder usw. P.S - Bearbeitete den Code, um die schließen Aussage zu enthalten –

Verwandte Themen