1

私は、matlab に読み込んで、いくつかの処理を適用したい一連の大きな画像を持っています。画像のサイズが大きいため、読み込みに時間がかかり、コンピュータのメモリがすぐにいっぱいになります。

ただし、私が関心があるのは、画像の中央部分、つまり約 100 x 100 ピクセル程度の領域だけです。

画像のそのセクションのみを読み取り、時間とメモリを節約する方法はありますか?

現在私は使用しています:

ROIx = 450:550;
ROIy = 650:750;
image = double( imread( filename ) );
image = image(ROIx, ROIy);

ただし、imread() はイメージ全体をロードするため、時間がかかります。気になる部分だけ読む方法はありますか?

(1つの手順は、各画像を小さなものに切り抜いて再保存することです。しかし、私は画像を切り取らないことを好みます)。

ありがとう、ラボジャンキー

4

2 に答える 2

2

Matlab 2012aは、JPEG2000およびTIFF画像から画像の一部を読み取ることができることを示しています。未読のドキュメントを見て、TIFFを読み取るためのオプション「PixelRegion」を調べてください。

于 2012-04-18T13:07:50.087 に答える
0

fopenなどを使用してファイルを開き、内容を部分的に手動で読み取る必要があります。もちろん、多くのエンコード/デコードを処理する必要があります。または、逆にシステムのスワップ領域を増やすこともできます。メモリ不足エラーが発生している場合。

于 2012-04-18T13:21:09.773 に答える