グレースケールの3次元マッピング
조회 수: 5 (최근 30일)
이전 댓글 표시
こんにちは。 現在、matlabによる画像処理の勉強をしています。
imreadで取り込んだ拡張子jpgの画像をrgb2grayでグレースケールに変換し、 im2doubleで数値に変換しました。 これを3軸のグラフでマッピングする方法がわかりません。
x-y平面は適当な数値(グレースケール数値が格納されているセル番号)とし、 z軸にはグレースケール値を割り当てたいと考えています。
例えば、x=セル列番号,y=セル行番号,z=セル(x,y)に格納されているグレースケール値という具合です。
ご存知の方、ぜひ回答を宜しくお願いします。
댓글 수: 1
Jiro Doke
2016년 10월 25일
因みに、 im2double を使わなくてもグレースケールは数値ですよ。型が違うだけなので値の範囲が 0 から 255 ( uint8 の場合)か 0 から 1 ( double の場合)の違いです。
채택된 답변
Teja Muppirala
2016년 10월 25일
たとえば:
I_RGB = imread('peppers.png');
I_gray = rgb2gray(I_RGB);
h = surf(I_gray); % surf関数で表面を作成する
h.EdgeColor = 'none'; % メッシュのエッジの線を非表示する
colormap gray
댓글 수: 0
추가 답변 (1개)
Jiro Doke
2016년 10월 25일
グレースケール値を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)
참고 항목
카테고리
Help Center 및 File Exchange에서 Data Distribution Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!