簡體   English   中英

如何在Matlab中將繪圖數據轉換為圖像矩陣(包含顏色圖的索引)

[英]How to convert plot data to image matrix (containing indices of colormap) in 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];

生成簡單的矩形圖案。 我想要的是復雜的圖案,例如矩陣(圖像數據)形式的某些曲線(x ^ 2或sinx)。 有可能將它們轉換為圖像數據嗎???

您擁有的一種選擇是使用Matlab的繪圖功能制作所需的圖片,然后將其保存為TIFF等圖形格式。 接下來加載圖像文件(可能使用imread),這將為您提供像素陣列。 這不是一個稀疏數組,而是一個完整的數組。 我希望您能弄清楚如何使它稀疏,或者取消顏色,使白色變成黑色(值(255,255,255)的像素變為(0,0,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));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM