グレースケールの3次元マッピング
17 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
ZONZON
el 25 de Oct. de 2016
Comentada: ZONZON
el 1 de Nov. de 2016
こんにちは。 現在、matlabによる画像処理の勉強をしています。
imreadで取り込んだ拡張子jpgの画像をrgb2grayでグレースケールに変換し、 im2doubleで数値に変換しました。 これを3軸のグラフでマッピングする方法がわかりません。
x-y平面は適当な数値(グレースケール数値が格納されているセル番号)とし、 z軸にはグレースケール値を割り当てたいと考えています。
例えば、x=セル列番号,y=セル行番号,z=セル(x,y)に格納されているグレースケール値という具合です。
ご存知の方、ぜひ回答を宜しくお願いします。
1 comentario
Jiro Doke
el 25 de Oct. de 2016
因みに、 im2double を使わなくてもグレースケールは数値ですよ。型が違うだけなので値の範囲が 0 から 255 ( uint8 の場合)か 0 から 1 ( double の場合)の違いです。
Respuesta aceptada
Teja Muppirala
el 25 de Oct. de 2016
たとえば:
I_RGB = imread('peppers.png');
I_gray = rgb2gray(I_RGB);
h = surf(I_gray); % surf関数で表面を作成する
h.EdgeColor = 'none'; % メッシュのエッジの線を非表示する
colormap gray
0 comentarios
Más respuestas (1)
Jiro Doke
el 25 de Oct. de 2016
グレースケール値を3次元の散布図で可視化したいということでしょうか。
im = imread('peppers.png');
imG = rgb2gray(im); % グレースケールに変換
imD = im2double(imG); % double に変換
ここでメッシュや表面プロットでしたら次のようなコマンドでできます。
mesh(imD)
散布図が必要な場合は、まず meshgrid を使って X と Y の座標グリッドを作成して、 plot3 または scatter3 で散布図を作成します。 plot3 の MarkerSize は見やすいマーカーの大きさに調整するためのオプションです。
[X,Y] = meshgrid(1:size(imD,2),1:size(imD,1));
plot3(X,Y,imD,'k.','MarkerSize',1)
3 comentarios
Ver también
Categorías
Más información sobre Data Distribution Plots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!