2016-03-24 18 views
1

MATLABで画像を別の画像に変換しようとしていますが、その間に変換機能T(x,y)(例:T(x,y) = (x + a(x,y), y + b(x,y)))を取得しています。以下の図を例として使用しましょう。私は最初の図の四角形を他の図形の円に変換したいと思います。出力は私に変換関数を与えます。私が四角形で関数を使うときはいつでも円を得るでしょう。MATLAB:画像を別の画像に変換する方法

Iは​​に見えたが、それは唯一の(回転、スケーリング、シャーリング)幾何学的変換のためにすべきである:に

enter image description here

機能

enter image description here私が見てきました。私はこれが四角形を円に変換するのには有用ではないと考えていますが、あらかじめ変換マトリックスを用意していません。

私はimregconfigimregisterをMATLAB exampleから探しましたが、同じ構造であっても強度が異なる画像でのみ機能するようです。さらに、変換関数を提供していません。私が間違っていれば私を修正してください。

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

+0

あなたが望むことをやり遂げる方法を見つけたら、私は思っていましたか?私は同様の問題があり、道を見つけることができません:) –

+0

ああ私はちょっとあきらめて、別のプロジェクトを選択しました。しかし、私はすべてのシナリオが違うと思うので、それを行う単一の方法はありません –

答えて

0

有効な変換の解空間は無限大です。 「正しい」ものを選ぶにはどうすればよいですか?

これらの入力に対する可能な変換の1つは、をxに、-0.5yに変換することです。サイズを倍にするように調整し(x' = 2xy' = 2y)、square-to-circle mapping functionを適用します。 (溶液1)

別完全に有効な変換関数は、式

((x == 0 || x == 1) && (0 <= y <= 1) || ((y == 0 || y == 1) && (0 <= x <= 1))

介して入力内のすべての点を実行して、全ての点が合格した場合、単に"x^2 + y^2 = 1"を印刷できました。 (ソリューション2)

解決策(1)と(2)は両方とも、あなたが提示したケースを満たすと思われるコードを生成しますが、明らかに(2)は役に立たないほど一般的ではありません。コードで解を書く前に、問題をより正確に定義する必要があると思います。

+0

ある画像を別の画像に変換する機能を取得する一般的な方法がないことを示唆していると思いますか?私の実際の状況は、2つの異なる脳の2つの断面画像を持っており、私は脳の異なる部分に一致し、また変換機能を得ることができることを期待していました。 –

+1

@JamestheGreat一般的な画像の一般的な解決策はありません。しかし、あなたが問題を正確に指摘すれば、あなたは移住して答えを得ます。あなたの問題は非常に一般的であり、脳画像でよく知られています。 –

+0

@JamestheGreat私が言っていることは、2つの画像間で変換する可能な関数が無限であり、適切なものを選択するための基準を提供していないということです。 – aednichols

関連する問題