Как преобразовать данные графика в матрицу изображения (содержащую индексы карты цветов) в Matlab - PullRequest
0 голосов
/ 16 февраля 2012

Я экспериментирую с разреженной матрицей, для которой мне нужны некоторые данные разреженной матрицы, содержащие некоторые шаблоны.Лучшее, что можно легко сгенерировать, - это данные изображения, например:

1002 *

Генерирует простой прямоугольный шаблон.То, что я хочу, это сложные паттерны, такие как некоторые кривые (x ^ 2 или sinx) в виде матрицы (данных изображения).Можно ли преобразовать их в данные изображения ???

Ответы [ 2 ]

0 голосов
/ 17 февраля 2012

Вы можете построить все это в 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 голосов
/ 16 февраля 2012

Один из вариантов, который у вас есть, - использовать возможности черчения Matlab для создания нужного изображения, а затем сохранить его в каком-либо графическом формате, например TIFF.Затем загрузите файл изображения (возможно, с помощью imread), который даст вам массив пикселей.Это будет не разреженный массив, а полный.Я предполагаю, что вы можете выяснить, как сделать его разреженным, возможно, свести на нет цвета, чтобы белый стал черным (а пиксели со значениями (255,255,255) стали (0,0,0)), а затем использовать разреженный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...