在matlab中将图像转换为(.raw)格式为(.jpg)格式

时间:2014-07-04 06:25:54

标签: image matlab

这是我的代码:

f=fopen('m-001-1.raw');
a=fread(f);
input_img = reshape(a,768, 576, 3);
input_img = imrotate(input_img, -90);
imwrite(input_img, 'm-001-1.jpg'); 

但它没有将图片保存为.jpg格式,我该如何改进呢?

1 个答案:

答案 0 :(得分:0)

这不是一个完美的答案,但评论太长了。然而,它可能是"解决方案"

它可能正在写一个图像而你却没有看到你想要的东西吗? " RAW"的问题格式是它不是一种格式本身,它从相机的字面上原始数据。您似乎知道数据的形状,通过您的" reshape(a,768, 576, 3);"进行猜测,但您知道它的幅度吗?

通常在原始时你会有二进制数,你需要将它们转换为你的振幅。

假设您的相机是每像素14位相机,那么您需要相应地缩放二进制数。您需要将它们缩放到8位(或其他东西,但matlab可以处理的东西)以进行保存和显示。

更有甚者,有时原始数据甚至不会线性存储! (查看here以获取阅读原始数据的提示),这样您可能会得到错误的图像。 Or maybe the las 4 bits are some kind of encodingThere are different ways of reading and storing RGB images

所有这些信息都是特定于硬件的,因此我们无法帮助您,因为我们不了解您的硬件。

所以简而言之。您需要大量的信息来阅读和处理原始数据,以及您拥有的信息,我们不会。也许如果你告诉我们你用于原始数据的硬件我们可以提供帮助,但通常是一项过于繁琐的工作,也许没有人会为你做出他/她的一天。

干杯。

PD:一些有趣的链接

Matlab文件交换

http://www.mathworks.com/matlabcentral/fileexchange/23394-fast-import-of-compressed-binary-raw-files-created-with-ltspice-circuit-simulator

Matlab文件交换

http://www.mathworks.com/matlabcentral/fileexchange/29344-read-medical-data-3d

Matlab文件交换

http://www.mathworks.com/matlabcentral/fileexchange/7412-raw-camera-file-reader

PDF机智提示

http://users.soe.ucsc.edu/~rcsumner/rawguide/RAWguide.pdf