[問題] 想把調色盤畫出來(如何在兩點間連線?)已回收
已經把調色盤讀成一個3x256的矩陣
我想把RGB值當成XYZ座標畫成3D圖,每個顏色是一個點
設定一個值D,計算每個顏色間的歐幾里德距離d
然後在d<D的點之間連一條線
不知道我畫這個圖需要用到哪幾個函式呢?orz
目前試了plot, plot3, line 都不得要領
不是結果不是我要的樣子,就是一直跑紅字出來..
目前試寫的東西:
D=255;
[X,MAP] = IMREAD('Explorer.gif');
MAP8 = uint16(round(MAP*255)); %0-1轉0-255
for (i=1:16) %256x256要跑很久,先用16測
for (j=1:16)
if (i==j)
d(i,j) = 0;
else
d(i,j)=sqrt(double((MAP8(i,1)-MAP8(j,1))^2
+ (MAP8(i,2)-MAP8(j,2))^2
+ (MAP8(i,3)-MAP8(j,3))^2))
end
plot(MAP8, '*');
if ( d(i,j) < D )
%line( MAP8(i) , MAP8(j) )
plot3( MAP8(i:j-i:j,1),MAP8(i:j-i:j,2),MAP8(i:j-i:j,3))
end
end
end
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.241.104.166
推
01/05 20:27, , 1F
01/05 20:27, 1F
目前改成如上, D設255 改用plot3取代line, 還是畫不出來(只有一條線)
紅字我再去製造一些出來...
※ 編輯: ThiefFan 來自: 163.17.7.249 (01/05 20:37)
從history弄了一些出來
不過這種初學者的試誤真的要看嗎...囧"
>> trimesh(tri,3,4,5)
??? Undefined function or variable 'tri'.
x=[1 4 7 10 1]
y=[2 5 8 11 2]
z=[3 6 9 12 3]
>> plot3(x,y,z,'-s');
??? Undefined function or variable 'x'.
>> plot3(x,y,z,'x');
??? Undefined function or variable 'x'.
>> line(MAP8)
??? Error using ==> line
Not enough input arguments.
>> line(MAP8(1::),MAP8(:1:),MAP8(::1))
??? line(MAP8(1::),MAP8(:1:),MAP8(::1))
|
Error: Unexpected MATLAB operator.
>> line(x,y,z)
??? Undefined function or variable 'x'.
※ 編輯: ThiefFan 來自: 163.17.7.249 (01/05 20:44)
※ 編輯: ThiefFan 來自: 58.99.36.48 (01/06 22:32)
※ 編輯: ThiefFan 來自: 58.99.36.48 (01/06 22:33)