Handschrifterkennung

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Handschrifterkennung

    Hi,
    ich möchte bald mal wieder an meiner App weiterarbeiten. In dieser würde ich gerne Handschrifterkennung einbauen. Das heißt der User soll z.B. 4+4 eingegeben und schon soll das iDevice das in einen String umwanden. Ich habe auch schon Apps gesehen, die so was ähnliches machen. Nun meine Frage: Gibt es dafür schon was fertiges oder muss man sich da selber was programmieren? Wenn ja, nach welchen Ansätzen muss man suchen?
    Viele Grüße
    Nils
  • AppleDeveloper schrieb:

    Eine Frage habe ich aber noch: Das erkennt ja nur Bilder, aber wie mache ich dass, dass der User was in der App schreibt und das dann in ein Bild umgewandelt wird?

    Ich würde einen View bzw. Viewcontroller erstellen, der die Touches aufzeichnet und diese Punkte durch Linien verbindet. Das sollte über einen CGMutablePath oder UIBezierPath recht einfach gehen. Den brauchst Du dann nur noch zeichnen.
    „Meine Komplikation hatte eine Komplikation.“
  • macmoonshine schrieb:

    AppleDeveloper schrieb:

    Eine Frage habe ich aber noch: Das erkennt ja nur Bilder, aber wie mache ich dass, dass der User was in der App schreibt und das dann in ein Bild umgewandelt wird?

    Ich würde einen View bzw. Viewcontroller erstellen, der die Touches aufzeichnet und diese Punkte durch Linien verbindet. Das sollte über einen CGMutablePath oder UIBezierPath recht einfach gehen. Den brauchst Du dann nur noch zeichnen.

    Danke! Das probiere ich aus!
  • So, ich habe mich jetzt für Tesseract entschieden, da das andere astronomische Preise hatte. Nun habe ich versucht mittels diesen Tutorial lois.di-qual.net/blog/install-…n-ios-with-tesseract-ios/ das ganze zu implementieren. Es scheint aber, als sei die Tesseract-iOS-lib (github.com/ldiqual/tesseract-ios-lib) nicht für arm64 ausgelegt. Denn ich bekomme da viele folgende Errors. Wie bekomme ich diese Libary zum laufen? Auf 64-Bit Support möchte ich nicht verzichten, da das mit ein Merkmal der App sein soll. Ich habe bereits bei Github einen Fehler aufgemacht, aber vlt. weiß hier jemand auch wie man das lösen kann, denn so wie es bei den anderen Fehlern aussieht sind die Antwort-Zeiten mit bis zu einen Monat ziemlich lang.

    ld: warning: directory not found for option '-L"/Users/nilskasseckert/Documents/iCrip/iCrip"'
    ld: warning: ignoring file /Users/nilskasseckert/Documents/iCrip/iCrip/tesseract-ios-lib-master/lib/libtesseract_all.a, missing required architecture arm64 in file /Users/nilskasseckert/Documents/iCrip/iCrip/tesseract-ios-lib-master/lib/libtesseract_all.a (3 slices)
    ld: warning: ignoring file /Users/nilskasseckert/Documents/iCrip/iCrip/tesseract-ios-lib-master/lib/liblept.a, missing required architecture arm64 in file /Users/nilskasseckert/Documents/iCrip/iCrip/tesseract-ios-lib-master/lib/liblept.a (3 slices)
    Undefined symbols for architecture arm64:
    "ERRCODE::error(char const*, TessErrorLogCode, char const*, ...) const", referenced from:
    GenericVector::remove(int) in Tesseract.o
    "STRING::STRING()", referenced from:
    GenericVector::reserve(int) in Tesseract.o
    "STRING::STRING(STRING const&)", referenced from:
    GenericVector::clear() in Tesseract.o
    "STRING::operator=(STRING const&)", referenced from:
    GenericVector::push_back(STRING) in Tesseract.o
    GenericVector::reserve(int) in Tesseract.o
    GenericVector::remove(int) in Tesseract.o
    "tesseract::TessBaseAPI::GetUTF8Text()", referenced from:
    -[Tesseract recognizedText] in Tesseract.o
    "tesseract::TessBaseAPI::SetImage(unsigned char const*, int, int, int, int)", referenced from:
    -[Tesseract setImage:] in Tesseract.o
    "tesseract::TessBaseAPI::End()", referenced from:
    -[Tesseract clear] in Tesseract.o
    "tesseract::TessBaseAPI::SetVariable(char const*, char const*)", referenced from:
    -[Tesseract setVariableValue:forKey:] in Tesseract.o
    -[Tesseract loadVariables] in Tesseract.o
    "STRING::STRING(char const*)", referenced from:
    -[Tesseract initEngine] in Tesseract.o
    "tesseract::TessBaseAPI::Recognize(ETEXT_DESC*)", referenced from:
    -[Tesseract recognize] in Tesseract.o
    "tesseract::TessBaseAPI::Init(char const*, char const*, tesseract::OcrEngineMode, char**, int, GenericVector const*, GenericVector const*, bool)", referenced from:
    -[Tesseract initEngine] in Tesseract.o
    "tesseract::TessBaseAPI::Clear()", referenced from:
    -[Tesseract clear] in Tesseract.o
    "STRING::~STRING()", referenced from:
    -[Tesseract initEngine] in Tesseract.o
    GenericVector::reserve(int) in Tesseract.o
    GenericVector::clear() in Tesseract.o
    "tesseract::TessBaseAPI::TessBaseAPI()", referenced from:
    -[Tesseract initWithDataPath:language:ocrEngineMode:configFilenames:variables:setOnlyNonDebugParams:] in Tesseract.o
    "tesseract::TessBaseAPI::Version()", referenced from:
    +[Tesseract version] in Tesseract.o
    ld: symbol(s) not found for architecture arm64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    (null): Directory not found for option '-L"/Users/nilskasseckert/Documents/iCrip/iCrip"'

    (null): Ignoring file /Users/nilskasseckert/Documents/iCrip/iCrip/tesseract-ios-lib-master/lib/libtesseract_all.a, missing required architecture arm64 in file /Users/nilskasseckert/Documents/iCrip/iCrip/tesseract-ios-lib-master/lib/libtesseract_all.a (3 slices)

    (null): Ignoring file /Users/nilskasseckert/Documents/iCrip/iCrip/tesseract-ios-lib-master/lib/liblept.a, missing required architecture arm64 in file /Users/nilskasseckert/Documents/iCrip/iCrip/tesseract-ios-lib-master/lib/liblept.a (3 slices)

    (null): "ERRCODE::error(char const*, TessErrorLogCode, char const*, ...) const", referenced from:

    (null): GenericVector::remove(int) in Tesseract.o

    (null): "STRING::STRING()", referenced from:

    (null): GenericVector::reserve(int) in Tesseract.o

    (null): "STRING::STRING(STRING const&)", referenced from:

    (null): GenericVector::clear() in Tesseract.o

    (null): "STRING::operator=(STRING const&)", referenced from:

    (null): GenericVector::push_back(STRING) in Tesseract.o

    (null): GenericVector::reserve(int) in Tesseract.o

    (null): GenericVector::remove(int) in Tesseract.o

    (null): "tesseract::TessBaseAPI::GetUTF8Text()", referenced from:

    (null): -[Tesseract recognizedText] in Tesseract.o

    (null): "tesseract::TessBaseAPI::SetImage(unsigned char const*, int, int, int, int)", referenced from:

    (null): -[Tesseract setImage:] in Tesseract.o

    (null): "tesseract::TessBaseAPI::End()", referenced from:

    (null): -[Tesseract clear] in Tesseract.o

    (null): "tesseract::TessBaseAPI::SetVariable(char const*, char const*)", referenced from:

    (null): -[Tesseract setVariableValue:forKey:] in Tesseract.o

    (null): -[Tesseract loadVariables] in Tesseract.o

    (null): "STRING::STRING(char const*)", referenced from:

    (null): -[Tesseract initEngine] in Tesseract.o

    (null): "tesseract::TessBaseAPI::Recognize(ETEXT_DESC*)", referenced from:

    (null): -[Tesseract recognize] in Tesseract.o

    (null): "tesseract::TessBaseAPI::Init(char const*, char const*, tesseract::OcrEngineMode, char**, int, GenericVector const*, GenericVector const*, bool)", referenced from:

    (null): -[Tesseract initEngine] in Tesseract.o

    (null): "tesseract::TessBaseAPI::Clear()", referenced from:

    (null): -[Tesseract clear] in Tesseract.o

    (null): "STRING::~STRING()", referenced from:

    (null): -[Tesseract initEngine] in Tesseract.o

    (null): GenericVector::reserve(int) in Tesseract.o

    (null): GenericVector::clear() in Tesseract.o

    (null): "tesseract::TessBaseAPI::TessBaseAPI()", referenced from:

    (null): -[Tesseract initWithDataPath:language:ocrEngineMode:configFilenames:variables:setOnlyNonDebugParams:] in Tesseract.o

    (null): "tesseract::TessBaseAPI::Version()", referenced from:

    (null): +[Tesseract version] in Tesseract.o

    (null): Symbol(s) not found for architecture arm64

    (null): Linker command failed with exit code 1 (use -v to see invocation)


    Viele Grüße
    Nils
  • Mit Xcode 5 hat Apple das erzeugen von iOS-Binarys vereinfacht. Du kannst bei xcrun mit angeben, für welche Platform Du ein Entwicklungstool aufrufst, z. B. über

    Quellcode

    1. xcrun --sdk iphoneos clang -arch arm64 -arch armv7 -c hello.c
    kompilierst Du die Datei hello.c für iOS und die Architekturen arm64 und armv7. Im Prinzip solltest Du die Build-Skripte aus dem Netz so anpassen können, dass Sie diese Aufrufe verwenden. Das musst Du natürlich für alle Tools (Complier, Linker usw.) machen. AFAIK brauchst Du da nur die Variablendefinitionen entsprechend ändern.
    „Meine Komplikation hatte eine Komplikation.“
  • macmoonshine schrieb:

    Mit Xcode 5 hat Apple das erzeugen von iOS-Binarys vereinfacht. Du kannst bei xcrun mit angeben, für welche Platform Du ein Entwicklungstool aufrufst, z. B. über

    Quellcode

    1. xcrun --sdk iphoneos clang -arch arm64 -arch armv7 -c hello.c
    kompilierst Du die Datei hello.c für iOS und die Architekturen arm64 und armv7. Im Prinzip solltest Du die Build-Skripte aus dem Netz so anpassen können, dass Sie diese Aufrufe verwenden. Das musst Du natürlich für alle Tools (Complier, Linker usw.) machen. AFAIK brauchst Du da nur die Variablendefinitionen entsprechend ändern.

    Danke, dass probiere ich!