Tesseract OCRライブラリについて
Tesseract OCRライブラリについて
OCRに興味があってこちらのページを見つけました。
http://homepie.blog.shinobi.jp/vc--/tes ... F%E3%82%8B
ほとんどやってることは変わらないのですが(ライブラリをスタティックで使うかダイナミックで使うかの違いくらい?)
実行してみると、liblept168.dllがないと怒られました。
http://gyazo.com/f5fbaea0d80cc3dc7dc7f6defa5a0ab5
確かにliblept168.dllというファイルは(systemフォルダ内にも)持っていません。
一応ソースや実行ファイル一式をアップロードしておいたので、見てもらえませんか?
http://firestorage.jp/download/85249d5f ... aa4e3b97de
ダウンロードパス:0603
よろしくお願いします。
http://homepie.blog.shinobi.jp/vc--/tes ... F%E3%82%8B
ほとんどやってることは変わらないのですが(ライブラリをスタティックで使うかダイナミックで使うかの違いくらい?)
実行してみると、liblept168.dllがないと怒られました。
http://gyazo.com/f5fbaea0d80cc3dc7dc7f6defa5a0ab5
確かにliblept168.dllというファイルは(systemフォルダ内にも)持っていません。
一応ソースや実行ファイル一式をアップロードしておいたので、見てもらえませんか?
http://firestorage.jp/download/85249d5f ... aa4e3b97de
ダウンロードパス:0603
よろしくお願いします。
Re: Tesseract OCRライブラリについて
こんばんは
調べてみました
http://www.solvusoft.com/ja/files/%E4%B ... pt168-dll/
leptonicaとよばれる製品の一部らしいです
Leptonica C Image Processing Libraryとありました
leptonica
調べた結果ですので間違いがあるかもしれません
その場合はご容赦いただけましたらと思います
調べてみました
http://www.solvusoft.com/ja/files/%E4%B ... pt168-dll/
leptonicaとよばれる製品の一部らしいです
Leptonica C Image Processing Libraryとありました
leptonica
調べた結果ですので間違いがあるかもしれません
その場合はご容赦いただけましたらと思います
Re: Tesseract OCRライブラリについて
わざわざありがとうございます。rascal さんが書きました:こんばんは
調べてみました
http://www.solvusoft.com/ja/files/%E4%B ... pt168-dll/
leptonicaとよばれる製品の一部らしいです
Leptonica C Image Processing Libraryとありました
leptonica
調べた結果ですので間違いがあるかもしれません
その場合はご容赦いただけましたらと思います
早速、ダウンロードしてみようと思います。
それと、私が書いたソースの書き方は正しいでしょうか?
Re: Tesseract OCRライブラリについて
私自身 まだまだ未熟なため人様のプログラムを正しいか正しくないかを言える立場にまだありませんので
そのあたりはここの掲示板の副管理人様方にお願いしてみてはいかがでしょうか?
少し気になった点だけ
フルパス指定でソースにファイルへのアクセスが記述されていますが 同じ環境でないと実行できないので
ほかの人に渡す予定があったり 配布する予定があるのであれば 相対パスのほうがよろしいかと思います
そのあたりはここの掲示板の副管理人様方にお願いしてみてはいかがでしょうか?
少し気になった点だけ
フルパス指定でソースにファイルへのアクセスが記述されていますが 同じ環境でないと実行できないので
ほかの人に渡す予定があったり 配布する予定があるのであれば 相対パスのほうがよろしいかと思います
Re: Tesseract OCRライブラリについて
そうでしたか。ありがとうございます。rascal さんが書きました:私自身 まだまだ未熟なため人様のプログラムを正しいか正しくないかを言える立場にまだありませんので
そのあたりはここの掲示板の副管理人様方にお願いしてみてはいかがでしょうか?
少し気になった点だけ
フルパス指定でソースにファイルへのアクセスが記述されていますが 同じ環境でないと実行できないので
ほかの人に渡す予定があったり 配布する予定があるのであれば 相対パスのほうがよろしいかと思います
副管理人様方が来るまで待ってみます。
一応、配布する予定などないのでフルパスにしたのですが、
配布する際は相対に直してから配布します。
Re: Tesseract OCRライブラリについて
関数の仕様が良くわかりませんが、ProcessPages()が文字列を取得するものであれば、
引数に渡すべきはchar型の変数(output)ではなく、charの配列です。
文字を取得するものであれば、printf("%s",output)はprintf("%c",output)となるべきです。
引数に渡すべきはchar型の変数(output)ではなく、charの配列です。
文字を取得するものであれば、printf("%s",output)はprintf("%c",output)となるべきです。
Re: Tesseract OCRライブラリについて
配列になっていなかったですか?Poco さんが書きました:関数の仕様が良くわかりませんが、ProcessPages()が文字列を取得するものであれば、
引数に渡すべきはchar型の変数(output)ではなく、charの配列です。
文字を取得するものであれば、printf("%s",output)はprintf("%c",output)となるべきです。
すみません、凡ミスでした。
Re: Tesseract OCRライブラリについて
関数仕様がわからないとのことなので、プロトタイプ宣言をしているヘッダーファイルをアップしときます。
今、出先なので、帰宅後すぐにやります。
今、出先なので、帰宅後すぐにやります。
Re: Tesseract OCRライブラリについて
大変遅くなりました。
http://firestorage.jp/download/f17f1c94 ... f7a567eefb
こちらが関数のプロトタイプ宣言しているヘッダーファイルです。
よろしくお願いします。
http://firestorage.jp/download/f17f1c94 ... f7a567eefb
こちらが関数のプロトタイプ宣言しているヘッダーファイルです。
よろしくお願いします。
Re: Tesseract OCRライブラリについて
これコンパイル通りました?
ProcessPages()はSTRING型のポインタを要求しています。
なぜchar型変数のポインタを渡しているのでしょうか?
#SBSKさんが参考にされたWebページもSTRING型のポインタを渡しているのですが。
ProcessPages()はSTRING型のポインタを要求しています。
なぜchar型変数のポインタを渡しているのでしょうか?
#SBSKさんが参考にされたWebページもSTRING型のポインタを渡しているのですが。
Re: Tesseract OCRライブラリについて
C++ではなく、C言語で作成しているので、STRINGではなくchar型にしました。Poco さんが書きました:これコンパイル通りました?
ProcessPages()はSTRING型のポインタを要求しています。
なぜchar型変数のポインタを渡しているのでしょうか?
#SBSKさんが参考にされたWebページもSTRING型のポインタを渡しているのですが。
コンパイルは通りました。
現在、Init関数が呼び出せないようで、26行目の
「Function Init error!!」
という文字が出て処理が終わってしまいます。
Re: Tesseract OCRライブラリについて
GetProcAddress()で取得できるのは関数のアドレスであって、クラスの非staticなメンバ変数は取得できないのでは?
Re: Tesseract OCRライブラリについて
同じようにProcessPagesも取得できません。Poco さんが書きました:GetProcAddress()で取得できるのは関数のアドレスであって、クラスの非staticなメンバ変数は取得できないのでは?
こっちはクラスのメンバではなく関数なので取得できるはずなのですが・・・
エラーコード的には127のプロシージャが見つからないとのことでした。
Re: Tesseract OCRライブラリについて
訂正します。
ProcessPages()もInit()と同様、TessBaseAPIクラスのメンバ変数です。
同じ理由で、アドレスの取得に失敗していると思います。
#私ならC++リンケージを持つDLLは、SBSKさんのように明示的リンクではなく、暗黙的リンクで利用します。
C++ではオーバロードがあるため、関数名だけでは一意に実体が定まりません。
件のdllのエクスポート情報ではProcessPages()は以下のようになっています。
151 96 00013930 ?ProcessPage@TessBaseAPI@tesseract@@QAE_NPAUPix@@HPBD1HPAVSTRING@@@Z
152 97 00013C00 ?ProcessPages@TessBaseAPI@tesseract@@QAE_NPBD0HPAVSTRING@@@Z
序数が151,152となっているので、序数指定で関数のアドレスが取得可能だと思います。
#やったことないので上手くいくか分かりません。
ProcessPages()もInit()と同様、TessBaseAPIクラスのメンバ変数です。
同じ理由で、アドレスの取得に失敗していると思います。
#私ならC++リンケージを持つDLLは、SBSKさんのように明示的リンクではなく、暗黙的リンクで利用します。
C++ではオーバロードがあるため、関数名だけでは一意に実体が定まりません。
件のdllのエクスポート情報ではProcessPages()は以下のようになっています。
151 96 00013930 ?ProcessPage@TessBaseAPI@tesseract@@QAE_NPAUPix@@HPBD1HPAVSTRING@@@Z
152 97 00013C00 ?ProcessPages@TessBaseAPI@tesseract@@QAE_NPBD0HPAVSTRING@@@Z
序数が151,152となっているので、序数指定で関数のアドレスが取得可能だと思います。
#やったことないので上手くいくか分かりません。
Re: Tesseract OCRライブラリについて
ということは、DLLで使うより、LIBでで使った方がいいということでしょうか?Poco さんが書きました:訂正します。
ProcessPages()もInit()と同様、TessBaseAPIクラスのメンバ変数です。
同じ理由で、アドレスの取得に失敗していると思います。
#私ならC++リンケージを持つDLLは、SBSKさんのように明示的リンクではなく、暗黙的リンクで利用します。
仮の話として、どうしてもDLLで使いたい、またはDLLでなければならない場合はどうすればよいのでしょうか?
それともDLLでは使うことはできないのでしょうか?
DLLが用意されてるということは使うこともできると思うのですが・・・
Re: Tesseract OCRライブラリについて
DLLを使用する方法として明示的リンク、暗黙的リンクがあります。
どちらも動的リンクです。実行時にDLLが必要です。
お使いの検索エンジンで、「DLL 明示 暗黙」をキーワードに検索をかければいろいろわかると思います。
どちらも動的リンクです。実行時にDLLが必要です。
お使いの検索エンジンで、「DLL 明示 暗黙」をキーワードに検索をかければいろいろわかると思います。
Re: Tesseract OCRライブラリについて
試しにやってみました。Poco さんが書きました:DLLを使用する方法として明示的リンク、暗黙的リンクがあります。
どちらも動的リンクです。実行時にDLLが必要です。
お使いの検索エンジンで、「DLL 明示 暗黙」をキーワードに検索をかければいろいろわかると思います。
ヘッダーファイルのところで構文エラーばかり出ました。
C++用のようなので、拡張子をcからcppにしたところエラーはなくなりました。
私はC++をやったことがないので、C言語縛りでやりたいのですが、それにはヘッダーを自分で書き換える必要があるのだと思いますが、
コンパイル済みのdllはヘッダーが書き換わっても問題ないのでしょうか?
こういう場合はみなさんどうしているのですか?
Re: Tesseract OCRライブラリについて
C言語で書こうとしているときにC++向けのライブラリを使用するのが間違いかと。
私なら代替ライブラリ探します。
#ただ、このライブラリはC言語向けのAPIも用意していますよ。
#APIリファレンスを見つけることはできませんでしたが、capi.hがそれに該当するんじゃないでしょうか。
私なら代替ライブラリ探します。
#ただ、このライブラリはC言語向けのAPIも用意していますよ。
#APIリファレンスを見つけることはできませんでしたが、capi.hがそれに該当するんじゃないでしょうか。
Re: Tesseract OCRライブラリについて
C言語向けのAPIが用意してあったのは気付きませんでした。Poco さんが書きました:C言語で書こうとしているときにC++向けのライブラリを使用するのが間違いかと。
私なら代替ライブラリ探します。
#ただ、このライブラリはC言語向けのAPIも用意していますよ。
#APIリファレンスを見つけることはできませんでしたが、capi.hがそれに該当するんじゃないでしょうか。
そちらを使います。
ただ、リファレンスがないとはどういうことでしょう?
手探りで使ってみるしかないのでしょうか?
Re: Tesseract OCRライブラリについて
なんとか手探りで文字を認識し、表示させるところまではできました。Poco さんが書きました:手探りでしょうね。
#baseapi.hのコメントが参考になるとは思いますが。
お世話になりました。