2017-08-17 10 views
2

2台のカメラは木製の厚板の2枚の画像を取ります。画像は、検査目的のために人間の目に自然かつ好ましくはシームレスに見えるように一緒に縫い合わせる必要がある厚板の重なりを有する。画像は同じサイズに切り取られ、背景と重ならない領域のほとんどを取り除くためにマスクされますが、板金はコンベアベルトにわずかな傾きを持つことがあります。現在Matlabの異なるカメラから重ね合わせる画像をつなぎ合わせる

私が試してみて、他の画像の一つを特定し、オーバーレイオフセットを動作するように、normxcorr2機能のMatlabのtotorialからアイデア以下、一般的なオーバーレイ領域にnormxcorr2機能を使用しています、次のようチュートリアル。しかし、これはnormxcorr2機能としてかなり頻繁に失敗したゼロオフセットを返します - 悪いステッチが生じ:

c = normxcorr2(plank_part1,plank_part2); 

は、相互相関のピークを探す:

[ypeak, xpeak] = ind(c==max(c(:))); 

アカウントをnormxcorr2パディングに追加されます。

yoffSet = ypeak-size(onion,1); 
xoffSet = xpeak-size(onion,2); 

[xoffSet,yoffSet] 

ans = 

0  0 

私がトンを増加させることにより、それを容易にしようとしていても、normxcorr2は、常にすべての画像の正しいオーバーレイ、または任意のオーバーレイを見つけることができません(?)と思われますグレースケールのコントラストは、関数histeqによって行われます。私の推測では、辺材からの "灰色の灰色"の量は、見事に縫うための重要な部分である別個の結び目を圧倒しているということです。

Simple gray scale example

High contrast example

誰もがおそらくいくつかのより多くの前処理により、この綴じ処理の可能性を増加させる、またはそれ以上この仕事をするために他のMATLABスキル/機能を使用するには、いずれかの方法を知っていますか?

P.S私は自由にアクセスできるスクリプト以外は使用できません。これはおそらく私のプロジェクトのライセンス/著作権の問題になるでしょう。

ありがとうございました!

+0

白い枠は、matlabによって作られています。おそらく助けが必要な場合は、画像自体を投稿する必要があります。しかし、あなたは、それらの厚板が間違いなく相前後しているので、相関を使ってステッチすることはありません。彼らは視覚的にステッチをしません –

+0

前処理としてhisteqを使用しないでください。これは非線形変換であり、いくつかの相関関係があれば確実にすべての相関関係を消去します。あなたの質問を更新し、あなたのコードが失敗した2つの元の画像を投稿してください。 – Ratbert

答えて

2

次のリンクをご覧ください。あなたが探している用語はimage registrationです。より高度な方法がありますnormxcorr2

+0

私に新しい言葉にリンクしてくれてありがとう、ありがとう! P.Sまだ私はそのリンクから提案された方法のいずれかをまだ稼働させることができませんでしたが、私をチャンスの新しい方向に送りました! –

+1

Fiji:ImageJを使用して、プロトタイプとテストを迅速に行うこともできます(https://imagej.net/Category:Registration)。このソフトウェアは無料でオープンソースです。登録には多くの新しいアルゴリズムが実装されています。 – MosGeo

+0

チップをありがとう、私は既にimagejについて良いことを聞いたことがある。しかし、私はMatlabでこれを行う必要があります。 FYI、私はおそらく、テンプレートマッチングのために、ビジョンパッケージのMatlabの「ステップ」機能を使用していますが、あなたの助けなしにこの方法を見つけられませんでした。ありがとう! –

関連する問題