Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 如何在matlab中将绘图数据转换为图像矩阵(包含彩色地图的索引)_Image_Matlab - Fatal编程技术网

Image 如何在matlab中将绘图数据转换为图像矩阵(包含彩色地图的索引)

Image 如何在matlab中将绘图数据转换为图像矩阵(包含彩色地图的索引),image,matlab,Image,Matlab,我正在试验稀疏矩阵,我需要一些包含一些模式的稀疏矩阵数据。最容易生成的是图像数据 乙二醇- 简单的矩形图案。我想要的是复杂的模式,比如一些矩阵(图像数据)形式的曲线(x^2或sinx)。是否可以将其转换为图像数据?您可以选择使用Matlab的绘图功能生成所需的图片,然后将其保存为一些图形格式,如TIFF。接下来加载图像文件(可能使用imread),它将为您提供一个像素数组。这将不是一个稀疏数组,而是一个完整数组。我希望你能想出如何使其稀疏,或者否定颜色,使白色变为黑色(具有值(255255255

我正在试验稀疏矩阵,我需要一些包含一些模式的稀疏矩阵数据。最容易生成的是图像数据 乙二醇-


简单的矩形图案。我想要的是复杂的模式,比如一些矩阵(图像数据)形式的曲线(x^2或sinx)。是否可以将其转换为图像数据?

您可以选择使用Matlab的绘图功能生成所需的图片,然后将其保存为一些图形格式,如TIFF。接下来加载图像文件(可能使用imread),它将为您提供一个像素数组。这将不是一个稀疏数组,而是一个完整数组。我希望你能想出如何使其稀疏,或者否定颜色,使白色变为黑色(具有值(255255255)的像素变为(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));
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));