您的位置:首页 > 编程语言 > MATLAB

Matlab BMP图像如何能运行在处理RAW图像程序中

2016-07-11 09:50 1091 查看
        最近,根据项目要求,修改一段Matlab程序,要求原本处理raw格式的图像压缩程序,能适用于BMP图像。搜索了许多资料,并没有现成解决方法。有想过将BMP转为RAW,可程序编写比较麻烦。由于RAW结构是纯像素数据、二进制文件,里面只有像素值,没有文件头、调色板等数据。每个像素根据格式不同占有不同的字节,如8位256色每个像素占一个字节,24位真彩色每个像素占三个字节。

        所以采取一种取巧方法解决了问题:提取BMP数据部分,存入到二进制bin(如:test.bin)文件中,fopen(‘test.bin’,‘rb’)打开读取就能运行在RAW中。如果直接提取BMP数据部分,用dec2bin转换成二进制数据,容易出现图像大小或者维度匹配问题。

        代码如下:

A=imread('lena.bmp');
[m,n]=size(A);
%存数据
fip=fopen('test.bin','wb');
fwrite(fip,A,'uchar');
fclose(fip);
%提取数据
fip=fopen('test.bin','rb');
Image=fread(fip,[m n],'uchar');
fclose(fip);




        Image 就能用在原本RAW的数据处理中了!

     
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: