ラスターからベクターへの線画の変換** LINES **


16

以下はそのような質問です:

... その他。

B&W png画像があり、迷路のような図面が含まれています。たとえば、のみが含まれ、領域は含まれません。

(任意の)ベクトル形式に変換する必要がありますが、LINESとして変換します。VectorMagic、potraceなど、私が試したプログラムはすべて、行を閉じたパス領域に変換します。

元のPNG画像の一部-ズーム: ここに画像の説明を入力してください

トレースの結果: ここに画像の説明を入力してください

ご覧のとおり、「ライン」は、他の領域のような形状と同様に、その両側からトレースされます。

線を実際の線(PATHS)にトレースする方法を探して、最適な線幅で。(ただし、任意の行で十分です)。

背後にある理由:トレースされたラインとノードで作業する必要があります。たとえば、いくつかのノードをベジェなどに変換します。形状では(簡単に)不可能です。

何か案が:

  • トレースプログラムからベクトル化されたを取得する方法。
  • どのツールがこれを行うことができますか?(任意のOS-Windows、OS X、Linuxを使用できます。)

回答:


15

センターライントレース

ラインアートビットマップの中心線トレースを実行できる無料のオープンソースツールAutoTraceがあります。

ここに画像の説明を入力してください

少なくとも次のオプションを使用してAutoTraceを実行します。

autotrace -centerline -color-count 2 -output-file output.svg -output-format SVG input.png 

ここに画像の説明を入力してください

その後、ストロークを微調整し、目的のストローク強度を追加できます。

コマンドラインに慣れていない場合に備えて、グラフィカルなフロントエンドのAutoTraceのフロントラインをインストールすることもできます。

Linuxユーザーは、ほとんどのディストリビューションでデフォルトのリポジトリから提供される自動トレースをインストールできる場合があります。Windowsの場合、プロジェクトのページからダウンロードするプリコンパイル済みパッケージがあります。

AutoTraceには、アプリケーションのマニュアルページまたはを使用して呼び出すことで見つけることができる多くの追加パラメーターがありますautotrace -help

スプラインよりも直線を取得するには、たとえば次のパラメーターを使用できます。

  • -line-threshold [real]
    スプラインがその端点で定義された直線から指定されたピクセル数を超えて逸脱していない場合、直線として扱います(デフォルト:1)。

  • - line-reversion-threshold [real]
    スプラインがこれよりも直線に近く、曲線の長さの2乗で重み付けされている場合、曲線を含むリストであっても直線を維持します。デフォルトは.01です。


1
+1自動追跡で直線セグメントのみを作成するトレーサのオプションがあるかどうか知っていますか。
joojaa

@joojaa:オプションの編集を参照してください。
タクカット

私はこれを使用するのが大好きだ...私はビルドに自動トレースを取得することがしたい
slashdottir

1
@slashdottir:どのシステムを使用していますか?プロジェクトのサイトは、最近の開発およびバグレポートのためにGithubに移動しました。回答を編集してリンクを含めました。
タックカット

ああ素晴らしい!OSXを使用しています。リンクをどうもありがとう!
スラッシュ

9

正直なところ...ペンツールをつかんで、手動でパストレースします。その結果、最高の出力が得られます。

多くの場合、自動トレースは最適なオプションではありません。ストロークできるパスのみが必要な場合、通常、自動トレースは惨めなほど失敗します。


画像は本当に複雑で、多くの行があります。また、より多くの画像があります-単に作業が多すぎます-別の方法を探しています...;)
jm666

);また、私は、「ツール」より願っています例えばように...マニュアル作業ではない、常に最良の可能な限り長いパスとを作成し、いくつかの最適化が行われます
jm666

幸運を!私が本当に求めているのは、手作業のスキルと忍耐だけだと思います。単一のパスを作成する価値のある自動化されたソリューションを見たことはありません。正直に不可能を求めていると思います。
スコット

2
@scottは一般的に私はこの特定のケースであなたの感情に同意するが、うまくいくかもしれない。
joojaa

5

以下に示すように、トレース後に補間パスを使用してみてください。

塗りつぶしからの平均ストローク


ワオ。これは非常に有望に見えます。ありがとうございました!+1。
jm666

@ jm666 ofcourse rhisのようなメソッドは、連続したパスを処理しない限り、非常にうまく自動化されません。
joojaa

5

Illustratorは、自動トレースのように中心線トレースを実行できます。ほとんどの場合、それほど有用ではありませんが、この場合、画像は高度に合成されており、機能する可能性があります。

ソース画像は悪名高いため、品質を損なうことなくこれを試す実際の方法はありません。元の画像の方が良いはずです(ズームする必要はありません)

これを行う:

  1. トレース設定では、塗りつぶしを無効にし、ストロークを有効にします。

  2. オブジェクト→展開

ここに画像の説明を入力してください

画像1:トレースおよび展開後のオブジェクト。

  1. トレースエラーの結果をさらに強化するには、オブジェクト→パス→簡素化を実行し、直線のエッジを確認します。

ここに画像の説明を入力してください

画像2:簡略化後

  1. あなたの画像は線の方向と角の位置で多少制限されているようです。それが本当なら、ポイントを定量化してより良い(完璧ではないにしても)結果を得ることができます。

ここに画像の説明を入力してください

画像3:量子化により結果がどうなるか。

PS:あなたが共有したソースが不完全であることを考えると、私の結果はかなり良いと言えます。一般に、ライントレースに依存することは不可能であることに同意しますが、この場合は機能します。

PPS:コーナーがオーバーラップしているため、自動トレーサーにいくつかの悲しみが生じます。ImageMagickなどのいくつかのMorphologyオペレーターを使用して、これらを検出して修正することができます。


いいね 単純なコマンドラインの使用のため、多くのイメージで自動トレースを使用するようになりました。上記のビットマップ画像は、大きな画像の小さな部分です(1300%ズーム):)-したがって、劣化しているように見えます。+1、ありがとう。
jm666

@ jm666確かに、必要に応じてcmdからイラストレーターを使用することもできますが、少し手間がかかります。
joojaa

Illustratorの画像トレースと、ストロークのみを使用するサンプルを試しました。有用な結果を得ることができませんでした。確かに、私はそれに多くの時間を費やしたわけではなく、サンプルはトレースに理想的ではありません。しかし、一般的に、AIのトレースをストロークのみに設定すると、トレースする前にオリジナルがかなりしっかりしてシャープでない限り、実際のアートワークの30〜60%しかトレースされません。
スコット

@Scottは元のサイズに画像を縮小し、線幅パラメーターを調整して、機能するようにしました。異なる幅のストロークをトレースする場合、2つまたは3つの別々のパスで行う必要がある場合があります。
joojaa


2

WinTopoと呼ばれる優れたフリーウェアツールを見つけました。

この方法は「ワンタッチベクトル化」と呼ばれ、うまく機能します。

GISコンテキストから来たので-プロバージョンでは、最初にラスターデータをジオリファレンスするオプションがあります-まだテストされていないので便利です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.