我已在matlab中更改了图像,现在我想将其写入我的文件系统。
我的代码现在看起来像这样:
save('newimage.bmp', 'newimage');
在matlab程序中没有显示错误。 但是当我尝试在我的文件夹中打开保存的图片时,我收到错误: “无法读取文件头!未知的文件格式,空/损坏的文件或文件未找到!”
所以我尝试了“imwrite”函数: 代码:
imwrite(newimage , 'newimage.bmp');
但现在我在matlab中遇到了很多错误:
“警告:带符号的像素可能会导致数据丢失和意外结果 数据。在imwrite中(第447行)在项目中(第35行)使用时出错 writebmp(第14行)
预期X是以下类型之一:
logical,uint8,single,double相反,它的类型是int16。
imwrite中的错误(第472行)feval(fmt_s.write,data,map,filename, paramPairs {:}); “
我找不到错误。提前感谢您的帮助,对不起的英语感到抱歉
答案 0 :(得分:1)
你的图像是int16类型,adn位图显然不支持它。
将图片转换为其他类型以使用bmp
(或使用png
)
imwrite(im2single(newimage) , 'newimage.bmp');
或
imwrite(im2double(newimage) , 'newimage.bmp');
或
imwrite(im2uint8(newimage) , 'newimage.bmp');
取决于您的数据和所需的精确度。