2012-02-16 73 views
0

我正在試驗稀疏矩陣,我需要一些包含某些圖案的稀疏矩陣數據。可以很容易地產生的最好的是圖像數據 EG-如何將繪圖數據轉換爲圖像矩陣(包含色彩圖的索引)在matlab中

a = 64 * ones (9,1); 
b = [64 64 64 0 0 0 64 64 64]; 
c = [64 64 64 0 64 0 64 64 64]; 
b = b'; 
c = c'; 
M = [a a a b c c b a a a]; 

Genrates簡單的矩形圖案。我想要的是像矩陣(圖像數據)形式的一些曲線(x^2或sinx)的複雜圖案。是否有可能將它們轉換成圖像數據?

回答

0

你可以在matlab中構建它,你只需要將函數值映射到圖像中的特定點。例如:

imsize = [250,600]; %sets dimensions of your image 
buff = 30; %vertical buffer--must be integer >=1 to avoid indexing error 
dm = [-pi,pi]; %sets the domain 
stepx = (dm(2) - dm(1))/imsize(2); 
f = @(x) sin(x); %whatever function you want 

y=f(dm(1):stepx:dm(2)-stepx); 
stepy = (max(y)-min(y))/(imsize(1)-2*buff); 
j=round(imsize(1)/2)-(round(y/stepy)); 
graph = full(sparse(j,1:imsize(2),1,imsize(1),imsize(2))); 
imshow(im2bw(1-graph,.5)); 
0

你有一個選擇是使用Matlab的繪圖功能,使你想要的圖片,然後將其保存到一些圖形格式,如TIFF。接下來加載圖像文件(可能使用imread),這會給你一個像素數組。這不會是一個稀疏的數組,而是一個完整的數組。我希望你能弄清楚如何使它變稀疏,也許否定顏色,使白變黑(而像素值(255,255,255)變爲(0,0,0)),然後使用稀疏。

相關問題