2017-05-05 6 views
2

私は、周囲にいくつかのキャリブレーション点を持つベクトルジオメトリを描画します。印刷された点のジオメトリを適合させる

Original draw

私はこのジオメトリを印刷した後、私は、物理的に(私は唯一のキャリブレーションポイントをスキャンすることができ、ジオメトリをスキャンすることができない)印刷キャリブレーションポイントをスキャンします。 これらのポイントを取得すると、印刷エラーや印刷キャリブレーションの不備のため、これらのポイントはもはやその位置にありません。

Scanned image

質問です: 私は新しいポイントのベースで元のジオメトリスキャンを適応させることができます任意のアルゴリズムがありますか? 実際には、キャリブレーションポイントと同じ印刷エラーで用紙に印刷された実際のジオメトリを取得するためにジオメトリを歪ませる必要があります。

歪みは、印刷プロセス中の材料(紙ではなく布)の物理的な歪みによって与えられます。私は、印刷中に材料がどれだけ歪むか分かりません。

+0

あなたが明らかに求めるものは、*可能な*方法が無限にあります。印刷とスキャンのプロセスから生じる可能性のある歪みについてもっと知っていますか? –

+0

Roryのコメントについて少し詳しく説明します:歪みは標準モデルの1つではないようです(例えば、放射状歪み、透視変換など)。各点の歪みの独立についてはどう思いますか?下にある粗い歪みパターンがあるように見えます(線形変換でも表現可能かもしれません)。すべてのポイントに追加の(独立した)ノイズがありますか?それ以外の場合は、一番上の行の中点が実際に外れて見えます。あなたの取得設定には、どのような歪み要因がありますか? –

+1

ありがとうございました。この歪みは、印刷プロセス中の材料(紙ではなく布)の物理的な歪みによって与えられます。私は材料が印刷中にどれほどひどくなるか分かりません。元の行列の点と点の最終行列(私は8点以上図面に挿入することができます)を持っていますが、パスの新しい点を計算することはできません。 – stefano

答えて

0

はい、あなたに役立つアルゴリズムがあります。一般的に、あなたはあなたが持っている2つの画像の間の変換を学び/見つける必要があります。

典型的な幾何学変換は、少なくとも3つの制御点または少なくとも4つの制御点を必要とする区分的局所線形/局所重み付け平均を必要とするアフィン変換(シフト、スケール、回転、せん断、反射)です。あなたが持っているコントロールポイントが多いほど一般的です。

一方の画像に制御点のセットがあり、他方の画像に対応する制御点のセットがある場合、クラスを指定した場合(アフィンまたは部分的に線形)に最適な変換を見つけるアルゴリズムがあります。例えばMatlabのfitgeotransを参照してください。私は、何らかの最適化によって推測することによって問題がどのくらい正確に解決されるかはわかりません。他のプログラミング言語(Python、C、Java)用の実装を見つけるのは簡単です。

残っているのは、2つの画像のコントロールポイント間の対応関係を見つけることです。いくつかの画像では手作業で行うことができるかもしれませんが、一般的な場合にはこれを自動化することもできます。 imregisterのような一般的な画像登録アルゴリズムは、あなたの画像にとってうまくいくはずです。それらは、変換のための良い初期推定値を与えます(すでに十分かもしれない)ので、対応する点の対の同定が(最も近いものをとる)簡単であり、精製を可能にする。

私は最初に、アイデンティティ変換を開始値としてイメージ(グレースケールデータ)を登録しようとします。次いで、対応する点の対を特定し、アファインまたはピースウィーズ/ローカル変換を使用して変換を改良する。ジオメトリに変換を適用して、印刷されたジオメトリを取得します。あなたのプログラミング言語の選択に応じて、その仕事をする多くの実装が見つかります。

関連する問題