iphone - 从图像中识别文本

标签 iphone ios4 ios5

如何识别手写文字?

我尝试了 teseract 库(版本 2),但这不太好。其更新版本运行不佳。我已经下载了一个演示项目 Pocket OCR,但也无法编译。 我已经编译并集成了 tesseract 库,但现在它给我链接错误,如下所示

    Ld /Users/Arkenea/Library/Developer/Xcode/DerivedData/OCR-airiipqjvidtcogttlxdbnqufnnl/Build/Products/Debug-iphonesimulator/OCR.app/OCR normal i386
    cd "/Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2"
    setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang++ -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk -L/Users/Arkenea/Library/Developer/Xcode/DerivedData/OCR-airiipqjvidtcogttlxdbnqufnnl/Build/Products/Debug-iphonesimulator "-L/Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2" "-L/Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/../../tesseract-ocr-svn" "-L/Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/../../tesseract-ocr-svn/outdir" "-L/Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/lib" -F/Users/Arkenea/Library/Developer/Xcode/DerivedData/OCR-airiipqjvidtcogttlxdbnqufnnl/Build/Products/Debug-iphonesimulator -filelist /Users/Arkenea/Library/Developer/Xcode/DerivedData/OCR-airiipqjvidtcogttlxdbnqufnnl/Build/Intermediates/OCR.build/Debug-iphonesimulator/OCR.build/Objects-normal/i386/OCR.LinkFileList -Xlinker -objc_abi_version -Xlinker 2 -Xlinker -no_implicit_dylibs -D__IPHONE_OS_VERSION_MIN_REQUIRED=30102 -framework Foundation -framework UIKit -framework CoreGraphics -framework MessageUI -ltesseract_api -ltesseract_ccstruct -ltesseract_ccutil -ltesseract_classify -ltesseract_cutil -ltesseract_dict -ltesseract_image -ltesseract_textord -ltesseract_training -ltesseract_viewer -ltesseract_wordrec -ltesseract_main -llept.2.0.0 -llept.2 -llept -llept -ltesseract.3.0.1 -ltesseract.3 -ltesseract -ltesseract -o /Users/Arkenea/Library/Developer/Xcode/DerivedData/OCR-airiipqjvidtcogttlxdbnqufnnl/Build/Products/Debug-iphonesimulator/OCR.app/OCR

ld: warning: directory not found for option '-L/Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/../../tesseract-ocr-svn'
ld: warning: directory not found for option '-L/Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/../../tesseract-ocr-svn/outdir'
ld: warning: ignoring file /Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/libtesseract_api.a, file was built for archive which is not the architecture being linked (i386)
ld: warning: ignoring file /Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/libtesseract_ccstruct.a, file was built for archive which is not the architecture being linked (i386)
ld: warning: ignoring file /Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/libtesseract_ccutil.a, file was built for archive which is not the architecture being linked (i386)
ld: warning: ignoring file /Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/libtesseract_classify.a, file was built for archive which is not the architecture being linked (i386)
ld: warning: ignoring file /Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/libtesseract_cutil.a, file was built for archive which is not the architecture being linked (i386)
ld: warning: ignoring file /Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/libtesseract_dict.a, file was built for archive which is not the architecture being linked (i386)
ld: warning: ignoring file /Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/libtesseract_image.a, file was built for archive which is not the architecture being linked (i386)
ld: warning: ignoring file /Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/libtesseract_textord.a, file was built for archive which is not the architecture being linked (i386)
ld: warning: ignoring file /Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/libtesseract_training.a, file was built for archive which is not the architecture being linked (i386)
ld: warning: ignoring file /Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/libtesseract_viewer.a, file was built for archive which is not the architecture being linked (i386)
ld: warning: ignoring file /Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/libtesseract_wordrec.a, file was built for archive which is not the architecture being linked (i386)
ld: warning: ignoring file /Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/libtesseract_main.a, file was built for archive which is not the architecture being linked (i386)
ld: warning: ignoring file /Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/lib/liblept.2.0.0.dylib, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: ignoring file /Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/lib/liblept.2.dylib, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: ignoring file /Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/lib/liblept.dylib, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: ignoring file /Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/lib/libtesseract.3.0.1.dylib, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: ignoring file /Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/lib/libtesseract.3.dylib, file was built for unsupported file format which is not the architecture being linked (i386)
ld: warning: ignoring file /Users/Arkenea/Desktop/suraj/notepad/rcarlsen-Pocket-OCR-9912da9 2/lib/libtesseract.dylib, file was built for unsupported file format which is not the architecture being linked (i386)
Undefined symbols for architecture i386:
  "tesseract::TessBaseAPI::End()", referenced from:
      -[OCRDisplayViewController dealloc] in OCRDisplayViewController.o
  "tesseract::TessBaseAPI::TessBaseAPI()", referenced from:
      -[OCRDisplayViewController viewDidLoad] in OCRDisplayViewController.o
  "tesseract::TessBaseAPI::Init(char const*, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool)", referenced from:
      tesseract::TessBaseAPI::Init(char const*, char const*) in OCRDisplayViewController.o
  "tesseract::TessBaseAPI::TesseractRect(unsigned char const*, int, int, int, int, int, int)", referenced from:
      -[OCRDisplayViewController readAndProcessImage:] in OCRDisplayViewController.o
      -[OCRDisplayViewController threadedReadAndProcessImage:] in OCRDisplayViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

有人可以帮助我或向我指出一些很棒的资源吗?

最佳答案

为此我们必须在其中设置一些设置 喜欢 tesseract->Init([dataPath cStringUsingEncoding:NSUTF8StringEncoding], "eng"); tesseract->SetVariable("tessedit_char_whitelist", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.!@#$%^&*()_+/{}|:?<>,~`"); tesseract->AllWordConfidences();

根据您的要求将其列入白名单

并将模式设置为默认 或根据您的要求

关于iphone - 从图像中识别文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8208450/

相关文章:

iphone - 如何将 Youtube 视频添加到 UITableView?

iphone - UITableView : Adaptive cell height

iphone - Objective-C - 优化这个单例模式?

iphone - 通过iPhone应用访问Siri

iphone - 使用 UIImage imageWithData :NSData dataWithContentsOfFile 时未显示图像

javascript - 使用 attr 更改 img 源不适用于 ios5

ios - 将 UITableView 的高度调整为仅适合总内容大小所需的高度

iPhoneSDK : UIBarButtonItem's selector method targets wrong instances

iphone - 如何从 iPhone 应用程序访问 Microsoft Exchange 服务器?

iphone - 有条件地包含用于不同 iOS SDK 版本的库?