Image 将图像转换为数组并在图像中再次显示

Image 将图像转换为数组并在图像中再次显示,image,matlab,Image,Matlab,我使用下面的代码来显示以前转换为数组的数组中的图像。但图像显示不正确: I = imread('ut.jpg'); image=mat2gray(I); imshow(image); FID = fopen('FileName.txt', 'w'); if FID == -1, error('Cannot create file.'); end fprintf(FID, '%g %g %g ... %g \n', image); fclose(FID); x = 100*rand(512,1

我使用下面的代码来显示以前转换为数组的数组中的图像。但图像显示不正确:

I = imread('ut.jpg');
image=mat2gray(I);
imshow(image);
FID = fopen('FileName.txt', 'w');
if FID == -1, error('Cannot create file.'); end
fprintf(FID, '%g  %g  %g ... %g \n', image);
fclose(FID);
x = 100*rand(512,1500);
fileID = fopen('FileName.txt','w');
fprintf(fileID,'%f',x);
fclose(fileID);
imshow(x);

位图由两部分组成。第一:3个颜色强度矩阵,刻度为
uint
,数字从0到255。第二:包含大小、颜色深度、文件长度等信息的标题

您的程序没有创建正确的图像,因为它缺少标题

关于matlab程序:

通过在RGB图像上使用
imread
,可以自动创建矩阵。如果使用
rgb2gray
将其转换为灰度,则将有一个
uint
矩阵(无任何附加层)

如果要在处理图像后保护图像,只需使用:

I = imread('ut.jpg');

% Convert, do smth e.g. I_new = rgb2gray(I);

filename = 'myNewImage.jpg';
imwrite(I_new,filename);

通过使用
imwrite
可以自动创建正确的标题。

您希望看到什么以及看到什么?您是否尝试过
imshow(x,[])
来启用自动缩放?