2010-12-03 3 views
0

私は手元にある私の仕事に多少圧倒される。 TWAINスキャンに使用するツールキットがあります。私たちの顧客の中には、デスキューオプションが設定されているとスキャン速度が遅くなると不平を言う人がいます。これは、スキャナがハードウェアデスキューをサポートしていない場合、スキャナがCPUで後処理で行われるためです。私は、誰かがこれを達成するための良い(つまり速い)アルゴリズムを知っているのだろうかと思っていました。私が現在どのようなアルゴリズムを使用しているのかを言うのは難しいです。これにはどのようなアルゴリズムがあり、どのように速度/精度までランク付けするのですか?私がアルゴリズムの名前を知っていたら、私はそれらの上でGoogle検索をする方が簡単かもしれません。最速デスキューアルゴリズム?

ありがとうございます。 -Tom

+0

"イメージデスキューアルゴリズム"。購入:http://www.leadtools.com/help/leadtools/v15/DocumentImaging/default.htm?turl=WordDocuments%2Fdocumentcleanupkeyfeatures1.htm –

+0

in C++ http://www.sydlogan.com/deskew.html –

+0

デスキューしたいものの典型的なサンプル画像を投稿して、それがかかる時間を測定し、その結果の画像を戻すことができます。 300 dpiのG4 TIFF画像は、圧縮解除や圧縮など、今日のハードウェアでは1秒未満で済むはずです。 leptonica(leptonlib)の場合は –

答えて

3

ColorまたはB/Wでスキャンしていますか?

プロセッサーが集中しています。 Group4のtiffまたはJPEGは、圧縮解除され、スキュー角度が決定され、傾きが補正され、圧縮されなければなりません。

デスキューには多くの画像処理アルゴリズムがあり、私は長年にわたり多くを評価してきました。異なるライブラリ間の処理速度にはいくつかの大きな違いがあり、使用されるアルゴリズムではなくコード化されていることが多くあります。商業ライブラリには、画像を読み書きするだけの大きな違いがあります。

私が使った最速の市販のデスキューは、Unisoft Imaging(www.unisoftimaging.com)からのものです。私はその多くがアセンブラで書かれていると思います。 Unisoftは長年にわたり、非常に高速で効率的です。これは、黒いボーダー除去、カラー、およびB/Wデスキューを含む、異なる多くのデスキューオプションをサポートしています。 Group4ルーチンは非常に強固で非常に高速です。ライブラリにはTWAINやネイティブSCSIスキャナのサポートだけでなく、他の多くの画像処理オプションが付属しています。また、Unixもサポートしています。

無料のデスキューをしたい場合は、Leptonicaを見たいと思うかもしれません。あまりにも多くのドキュメンテーションが付属していませんが、非常に安定しており、よく書かれています。 http://www.leptonica.com/

ゼロからコードを開発するとかなり時間がかかることがあり、エラーが発生しやすくなります。

もう1つの選択肢は、別のプロセスで文書を処理して、スキャナをスキャナの速度でスキャンできるようにすることです。現時点では、おそらくすべてを並行して処理しているため、1つのタスクが次々と実行されるため、減速します。

+0

+1。これはlibtiffを使用して、デコード/エンコードに適度に高速で、デスキューアルゴリズムは私が見た中で最も速いアルゴリズムの1つです(角度検出のための差分行合計、回転のためのラスタップ剪断)。そして、私はドキュメントに関する意見に同意していません。ソースファイルにはドキュメントのコメントがあり、「一箇所に」ドキュメントはありません。 C++での開発を考えれば、優れた選択肢になります。 – allonym

+0

私はちょうどLeptonica自分自身に入っています。私はソースコードを調べて、あなたに同意しなければなりません。ソースコードのコメントはとても役に立ちます。それは1つの場所でそれを持っていることがいいだろう。 Lpetonicaは十分サポートされており、Google Tesseract OCRプロジェクトの不可欠な部分です。 –

+0

+1 leptonlibについてもう一度JBig2用のアプリケーションで使っています...しかし、どうやってこれを本当に解決したのですか?それはプロジェクトの最小角度と最大角度を減らしました。私は半分にしました。これは受け入れられます –

0

デスキューをリアルタイムで行うことはできないため(ハードウェアアクセラレーションが行われている場合を除く)、後処理として行うことを検討してください。

デスキューは、スキュー検出と回転の2つのステップで構成されています。スキュー角の検出は、通常、B & W(1ビット)イメージで高速に実行できます。回転速度は補間の品質に依存します。良質のデスキューは、ページをスキャンするよりもはるかに時間がかかります。

ハードウェアJPEGまたはTIFFグループ4圧縮があり、TWAINライブラリがそれを利用している場合(ヒント:ネイティブモードを使用しないでください)、高速スキャナーで1分あたり120の両面ページを処理できます。あなたはそのスピードでハードドライブにファイルを保存するのに十分な時間がかろうじてあり、圧縮解除、スキュー検出、回転、再圧縮はもちろんです。ビデオカードのハードウェアアクセラレータを使用して回転と圧縮を行うことができない限り、品質のデスキューには1ページに数秒かかります。

0

このようなアルゴリズムが既に実装されていることを正しく理解していますか?もしそうなら、最適化のためのスペースがないのでしょうか?私は既存のソリューションをプロファイリングすることから始めます。

とにかく、私は高速デジタルラドン変換アルゴリズムを探すべきだと思います。

http://pagetools.sourceforge.netをご覧ください。彼らはデスキューアルゴリズムを実装しています。