0

0 から 1.0 の値を持つ白黒画像が image(my_img) 呼び出しによって正しくスケーリングされない理由を理解しようとしています。

私は次のことを試しました:

  • カラーマップの設定([0:0.0039:1; 0:0.0039:1; 0:0.0039:1]')
  • gca の clim を [0 1] に設定する
  • DataAspectRatio を [1 1 1] に設定する
  • ClimMode と DataAspectRatioMode を手動に変更する

私は何を間違っていますか?Matlab のドキュメントには、画像は [0 1.0] からのものである可能性があると記載されています... なぜ image() で正しく表示されないのですか?

Imshow はうまく機能しますが、イメージ関数を使用して個人的な理由で imshow と同じイメージを実現しようとしています。

コンスタンティン

4

2 に答える 2

1
h=image(rand(250, 250));
set(h, 'CDataMapping', 'scaled');

imagesc()はこれを自動的に行います。実際、imagesc使用する正しいプロパティ名を与えてくれたのは のソース コードでした。

于 2012-06-07T19:27:48.737 に答える
0

imageドキュメント(「ヒント」という見出しの下の表を参照)から、imageRGB 値の配列またはインデックス付きカラーマップのいずれかで呼び出すことができます。後者は、あなたがしていることのようです。この同じ表から、インデックス付きカラーマップが次のように述べられています。

[1, length(colormap)];、範囲 [0, 1] の浮動小数点値の m 行 3 列の配列です。

ここでの重要な点は、画像配列 の値が~my_imgの範囲内にあることです(「設定」の行からこれを推測しました。これを変更する必要があるかもしれません)。ただし、0から1の範囲の値があり、それらはすべてカラーマップの最初の色にマップされています。これは、または黒であると推測されます。1256colormap([0:0.0039:1; 0:0.0039:1; 0:0.0039:1]'(0, 0, 0)

于 2012-06-07T19:29:14.190 に答える