1

のドキュメントで次のことを読みましたim2double

クラスのサポート:

強度イメージとトゥルーカラー イメージは、uint8、uint16、double、logical、single**、または int16 にすることができます。インデックス付きイメージは、uint8uint16doubleまたは logicalにすることができます。バイナリ入力イメージは論理的でなければなりません。出力画像は2倍です

私は 64 ビット マシンで作業しています (つまり、MATLAB はdouble 型の変数を表すために8 バイトを使用します)。タイプuint32のインデックス付きイメージがあり、それをタイプdoubleに変換できるはずim2doubleですが、サポートしていないようです。つまり、次のエラーが発生します。

im2double を使用する際のエラー入力番号 1 のイメージは、次のいずれかのタイプである必要があります。

double、logical、uint8、uint16、int16、single

代わりに、そのタイプは uint32 でした。

では、どのようにタイプのマトリックス (インデックス付きイメージ) を に変換できuint32ますdoubleか?

これはすべてMATLAB 2012a上にあります

4

1 に答える 1

1

このページによると(ここにもいくつかの情報があります):

インデックス付き (疑似カラー画像とも呼ばれます)

クラス logical、uint8、uint16、single、または double の配列で、ピクセル値はカラーマップへの直接インデックスです。カラーマップはクラス double の m 行 3 列の配列です。

single または double 配列の場合、整数値の範囲は [1, p] です。logical、uint8、または uint16 配列の場合、値の範囲は [0, p-1] です。

したがって、MATLAB はクラス uint32 のインデックス付きイメージをサポートしません。ある種の色の量子化を行う必要があると思います。

于 2012-07-29T23:30:12.963 に答える