5

カラースキャンのファイルサイズを小さくする必要があります。

今までのところ、次の手順を実行する必要があると思います。

  • ノイズを低減するための選択的ブラー(または同様のもの)
  • 〜120dpiにスケール
  • 色を減らす

これまでは、convert(imagemagick)ツールとnet-ppmツールを使用していました。

スキャンは請求書であり、写真ではありません。

ヒントをいただければ幸いです。

アップデート

例:

バウンティ

再現可能なソリューションを備えたexample.pngの最小で読みやすい縮小ファイルは、恩恵を受けます。ソリューションはオープンソースソフトウェアのみを使用する必要があります。

再度PNGに変換できる限り、ファイル形式は重要ではありません。処理時間は重要ではありません。後で最適化できます。

アップデート

白黒出力で非常に良い結果が得られました(ありがとう)。約16色または32色に色を減らすのは興味深いでしょう。

4

3 に答える 3

4

画質と画像サイズの間にはまだ柔軟な余地があるため、これはどちらかというと未解決の問題です...結局、白黒にして、CCITT T.6 白黒 (ファックス スタイル) 圧縮で圧縮します。すべてのカラー対応圧縮アルゴリズムではないにしても、ほとんどのズボンを打ち負かします。

モノクロ (グレースケールではなく) を使用する場合は、それを実行してください。ドキュメントが非常に小さくなります。

それ以外の場合は、一連のマイナーな画像変換と適応予測ツリーをお勧めします (こちらを参照)。APT ソフトウェア パッケージはオープンソースまたはパブリック ドメインであり、コンパイルと使用が非常に簡単です。その利点は、さまざまな種類の画像、特にテキストで適切に機能し、読みやすさを損なうことなく、画像サイズと画質をより適切にスケーリングできることです。(example_1000 サイズのカラー バージョンを読みやすさのしきい値で 48 KB に縮小し、明らかなアーティファクトはあるが読みやすい 64 K に縮小していることに気付きました。)

APT と imagemagick の微調整を組み合わせました。

convert example.png -resize 50% -selective-blur 0x4+10% -brightness-contrast -5x30 -resize 80% example.ppm
./capt example.ppm example.apt 20  # The 20 means quality in the range [0,100]

そしてプロセスを逆にするには

./dapt example.apt out_example.ppm
convert out_example.ppm out_example.png

imagemagick の設定を説明するには:

  • -resize 50%処理を高速化するには、サイズを半分にします。また、一部の印刷およびスキャン アーティファクトを非表示にします。
  • -selective-blur 0x4+10%: シャープにすると、実際にはより多くのノイズが発生します。実際に必要なのは、「エッジ」がないときにぼかす選択的ぼかし (Photoshop のようなもの) です。
  • -brightness-contrast -5x30: ここでは、コントラストを少し上げて、ページのアウトラインによって発生する不適切な配色をクリップします (データの圧縮率が低くなります)。また、黒をより黒くするために少し暗くします。
  • -resize 80%最後に、example_1000 の画像サイズより少し大きくサイズ変更します。(十分に近いです。)これにより、ピクセルがマージされると多少隠れてしまうため、明らかなアーティファクトの数も減少します。

この時点で、この例では見栄えの良い画像が得られます。きれいで滑らかな色と鮮明なテキストです。次に、圧縮します。品質値 20 はかなり低い設定で、見栄えは良くありませんが、ドキュメントは非常に読みやすくなっています。品質値が 0 でも、ほとんど判読可能です。

繰り返しますが、ADT を使用しても、この画像で必ずしも最良の結果が得られるわけではありませんが、グラデーションなどの写真のようなコンテンツで完全に認識できない混乱になるわけではないため、より多くのタイプや予期しない書類の種類。

結果: 88kb 76kb 64kb 48kb

圧縮前の処理画像

于 2012-02-02T16:57:39.663 に答える
4

色の数を本当に気にしないのであれば、白黒にしてバイレベル コーダーを使用することもできます。JBIG2 とよく比較され、オープン ソースのエンコーダーを備えているため、最終的に DJVU 形式を使用することになりました。この場合didjvu、最良の結果が得られたので、エンコーダーを使用しました。(Ubuntu では、おそらく他のディストリビューションでも apt-get install didjvu を実行できます。)

私が最終的にエンコードした魔法は次のようになります。

convert example.png -resize 50% -selective-blur 0x4+10% -normalize -brightness-contrast -20x100 -dither none -type bilevel example_djvu.pgm
didjvu encode -o example.djvu example_djvu.pgm --lossless

これは、実際にはフル解像度で 0x2+10% の優れた色のぼかしであることに注意してください。これにより、2 値画像に変換される前に想像できるほど素晴らしい画像が作成されます。

デコードは次のように機能します。

convert example.djvu out_example.png

より大きな解像度 (読みやすい) でも、サイズは 24KB になります。同じサイズに縮小しても、まだ 24KB です。最後に、元の画像のわずか 75% の縮小と 0x5+10% のぼかしで、32KB の重みを付けています。

視覚的な結果については、こちらをご覧ください: http://img29.imageshack.us/img29/687/exampledjvu.png

于 2012-02-03T01:19:30.947 に答える
2

Imagemagick ユーティリティ "convert" を使用して既に正しいことを行っている場合は、最初に Imagemagick ライブラリを確認することをお勧めします。

私のUbuntuパッケージリストをざっと見てみると、perl、python、ruby、c++、およびjavaのバインディングが示されています

于 2012-01-25T08:21:30.413 に答える