1

パノラマを作成するために、1つのMATLABフィギュアで複数の画像を重ねて描画しようとしています。image(im, x, y)私が持っているコードは機能しますが、画像をオーバーレイするためにforループで使用するだけです。

私は非常に多くの画像を持っているので、これにより、MATLABは多くのアルファブレンディングを行う必要があり、短い順序で描画が遅くなります。

これまでに描いた画像を1つの画像に平坦化して、背景としての図に効率的にブリットできるようにする方法が必要です。

助言がありますか?

編集 または、image(im、x、y)などを使用して、バックグラウンドのマトリックスバッファーに描画し、その単一のバッファーをフィギュアに描画する方法はありますか?

4

3 に答える 3

0

これがあなたの速度に役立つかどうかはわかりませんが、プロセスが終了した後かもしれません.

使用できます

saveas(figureHandle, 'filename', 'filetype')

図を画像ファイルに保存します。を使用して現在の図を閉じ、close all以前と同じように新しい画像を再適用できますが、現在は単一の画像になります。

数枚の画像ごとにこれを行うと、プログラムが高速化される可能性があります。写真を見るスピードが確実に速くなります。

于 2013-02-07T03:42:57.723 に答える
0

すべての画像を合成した単一の画像を作成する場合があります (特に、透明度がないように見えるため)。その後、Matlab は、多数の画像を計算するのではなく、一度に 1 つの画像のみをレンダリングします。クリップする必要がある場合に備えて、境界がどうなるかを前もって定義する必要があります。その後、ピクセルを新しいものに置き換えるだけです(ディスクではなくメモリ内)。それが可能かどうかは、あなたが描いている絵の種類によって異なります。それが難しい場合は、関数を使用して、ベンの方法のバリエーションが getframe機能します (このリンクを参照してください)。フィギュアのスナップショットを取得し、それを画面に戻すことができます。通常はムービー作成用ですが、この場合に機能しない理由はありません...

于 2013-02-07T05:45:00.933 に答える