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

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


     

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值