Re: [討論] 請問RGB 3D圖要怎麼畫?已回收

看板MATLAB作者 (愛世代)時間13年前 (2011/06/19 15:07), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
既然有人回答了(那位大大寫得好簡單喔), 不過我把之前寫的稍微改一下做個分享。 (雖然不確定合不合用) 主程式 %author:Vincent Chang % directed by Dr.Sun clc; clear;close all; %% 讀取影像 並且決定將影像縮小為原影像大小的10% img=imread('Jill.jpg'); scaledown=0.1; %% 畫出 RGB在3D空間的畫素分布 srgbdistribution(img,scaledown); ***************************************** 以下為副程式,請編個 srgbdistribution.m檔 %author:Vincent Chang % directed by Dr.Sun %影像在縮放時,還是用bilinear會比較好 function srgbdistribution(img,scaledown) small_pic=imresize(img,scaledown,'bilinear'); [nrows ncols ch]=size(small_pic); %取出影像長寬資訊,如果影像為彩色,取出來的值必為3 change_pic=double(reshape(small_pic,nrows*ncols,3)); %分別將影像資料轉成N*3的矩陣 RGB=double(reshape(small_pic,nrows*ncols,3))/255; % turn into color_value,跟上式不同在於裡面的數值皆為0到1 %% 搭配markersize 繪圖 for ii=1:ncols*nrows plot3(change_pic(ii,1),change_pic(ii,2),change_pic(ii,3),'.','markersize',20,'color',RGB(ii,:)); hold on; end box on rotate3d on axis([0 255 0 255 0 255]) axis([0 255 0 255 ]) xlabel('R*'), ylabel('G*'), zlabel('B*'); set(gcf, 'color','w') set(gca, 'color',[.3 .3 .3]) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.21.111
文章代碼(AID): #1D_Q0s18 (MATLAB)
文章代碼(AID): #1D_Q0s18 (MATLAB)