2016-08-19 83 views

回答

2

writingDirection屬性是隻讀的,將在識別文本時被檢測到。

G8Constants.h中的G8WritingDirection是可能的書寫方向。

我想認識這個圖片:

sample image

用下面的代碼:

G8RecognitionOperation *operation = [[G8RecognitionOperation alloc] initWithLanguage:@"ara"]; 
operation.tesseract.language = @"ara"; 
operation.tesseract.image = [[UIImage imageNamed:@"ara.png"] g8_blackAndWhite]; 
operation.recognitionCompleteBlock = ^(G8Tesseract *recognizedTesseract) { 
    NSLog(@"recognizedText=%@", [recognizedTesseract recognizedText]); 
    NSLog(@"writingDirection=%lu", (unsigned long) recognizedTesseract.writingDirection); 
}; 

而且我得到的輸出:

recognizedText=شكر ا جزيلا 
writingDirection=1 
+0

但在這,你沒有設置書寫方向,但你只是記錄。但我認爲線「operation.tesseract.language = @」ara「;」將幫助我,因爲在我的代碼中這行不見了,我不能識別文本,因爲它總是從左到右閱讀。我正在從照相機輸出中讀取,而不是從圖像中讀取。謝謝你的幫助。 – WasimSafdar

+0

我收到此錯誤「tessdata_manager.SeekToStart(TESSDATA_INTTEMP):錯誤:斷言失敗:文件adaptmatch.cpp,行511 」,同時識別阿拉伯語言。我沒有使用「G8OCREngineModeTesseractOnly」,但仍然錯誤保持不變。 – WasimSafdar

+0

從Github,gali8/Tesseract-OCR-iOS,問題#209: 阿拉伯語僅在G8OCREngineModeCubeOnly中有效。 我在G8Tesseract.mm改變initWithLanguage如下: - (instancetype)initWithLanguage:(的NSString *)語言 { 如果([語言isEqualToString:@ 「ARA」]) 返回[自我initWithLanguage:語言configDictionary: nil configFileNames:nil cachesRelatedDataPath:nil engineMode:G8OCREngineModeCubeOnly]; else return [self initWithLanguage:language configDictionary:nil configFileNames:nil cachesRelatedDataPath:nil engineMode:G8OCREngineModeTesseractOnly]; } – Thamrong