質問: グレースケールの3次元マッピング こんにちは。 現在、matlabによる画像処理の勉強をしています。 imreadで取り込んだ拡張子jpgの画像をrgb2grayでグレースケールに変換し、 im2doubleで数値に変換しました。 これを3軸のグラフでマッピングする方法がわかりません。 x-y平面は適当な数値(グレースケール数値が格納されているセル番号)とし、 z軸にはグレースケール値を割り当てたいと考えています。 例えば、x=セル列番号,y=セル行番号,z=セル(x,y)に格納されているグレースケール値という具合です。 ご存知の方、ぜひ回答を宜しくお願いします。
回答: グレースケール値を3次元の散布図で可視化したいということでしょうか。 im = imread('peppers.png'); img = rgb2gray(im); % グレースケールに変換 imd = im2double(img); % double に変換 ここでメッシュや表面プロットでしたら次のようなコマンドでできます。 mesh(imd) <> 散布図が必要な場合は、まず を使って x と y の座標グリッドを作成して、 または で散布図を作成します。 |plot3| の |markersize| は見やすいマーカーの大きさに調整するためのオプションです。 [x,y] = meshgrid(1:size(imd,2),1:size(imd,1)); plot3(x,y,imd,'k.','markersize',1) <>