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,[])
来启用自动缩放?