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

来源:互联网 发布:画漫画的软件 编辑:程序博客网 时间:2024/05/21 10:49

        最近,根据项目要求,修改一段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的数据处理中了!

     

0 0
原创粉丝点击