问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

matlab如何读取raw数据

发布网友 发布时间:2022-04-23 06:22

我来回答

2个回答

热心网友 时间:2023-10-05 02:32

1.RAW结构是纯像素数据文件,里面只有每个像素的值,没有文件头、调色板等数据,所以要想正确显示一个RAW文件图像,必须人工指定它的长、宽和像素深度。
2.每个像素根据格式不同占有不同的字节,如8位256色每个像素占一个字节;24位真彩色每个像素占三个字节。
3.要自己写,注意:
(1)函数要有此RAW文件的长、宽和像素深度三个参数,从而得到BMP文件头,存入strBMP[]的前面;
(2)函数里把读进来的RAW文件数据strRaw[]里的数据进行行反转放入strBMP[]中文件头之后,即把第length-1-i行(从第0行开始记,i从0开始)的数据放到第i行,而每行里的数据不变。这样做是因为BMP文件里的像素数据是从最后一行即length-1开始的。
(3)使用显示BMP文件的函数来显示此strBMP[]里的图像文件。

热心网友 时间:2023-10-05 02:33

% 网上找的,看下有没有用
function [X,map] = rawread(filename,n,m);
% RAWREAD Read a Portable Bitmap file, or a raw file.
% RAWREAD('imagefile.raw', xsize, ysize) reads a "raw" image file
% RAWREAD('imagefile.pgm') reads a "pgm" (portable gray map) image
% [X,map] = RAWREAD('imagefile.raw') returns both the image and a
% color map, so that
% [X,map] = rawread('imagefile.raw',sx,sy);
% or [X,map] = rawread('imagefile.pgm');
% image(X)
% colormap(map)
% will display the result with the proper colors.
%
% NOTE : map is optional and could be replaced ring the display by
% the "colormap('gray')" command
%
% See also IMWRITE, IMREAD, IMAGE, COLORMAP.
dot = max(find(filename == '.'));
suffix = filename(dot+1:dot+3);
if strcmp(suffix,'pgm') | strcmp(suffix,'raw')
disp(sprintf('nopens %s filen',filename));
fp = fopen(filename,'rb','b'); % "Big-endian" byte order.

if (fp<0)
error(['Cannot open ' filename '.']);
end
if strcmp(suffix,'pgm')
% Read and crack the header

head = fread(fp,2,'uchar'); % pgm magic number : P5
if ~strcmp(head,'P5'),
fprintf(1,'n Magic Number : %sn',head);
else
fprintf(1,'n Bad Magic Number : %sn',head);
error('cannot continue this way, good bye cruel world');
end
c = fread(fp,1,'uchar'); %reads the carriage return separating P5 from the creator
precreator = fread(fp,1,'uchar'); % look for a '#' character preceeding a creator signature
if precreator == '#',
c = setstr(20); % any character except carriage return
cr = setstr(10); % defines a carriage return
while c ~= cr,
c = fread(fp,1,'uchar');
creator = [creator,c];
end;
fprintf(1,'n creator : %sn',creator);
else
fprintf('n No creator signaturen');
fseek(fp,-1,'cof'); % return one char before
end;
end
if nargin <2,
if strcmp(suffix,'raw')
% assume image size is 256x256
disp('RAW file without size : assume image size is 256x256');
n = 256;
m = 256;
else % for PGM files
% reads the size and depth
disp(' reads sizes');
n = fscanf(fp,'%d',1);
tn = num2str(n);
disp([' xsize = ' tn]);
m = fscanf(fp,'%d',1);
tm = num2str(m);
disp([' ysize = ' tm]);
p = fscanf(fp,'%d',1);
tp = num2str(p);
disp([' depth = ' tp]);
c = fread(fp,1,'uchar'); %reads the last carriage return
end;
end
% Creates a gray palette and scale it to [0,1].
disp(' create gray palette');
for i=1:256,
map(i,[1:3])=[i/256,i/256,i/256];
end;

% Read the image
disp(' Reads image data ...');
[X,l] = fread(fp,[n,m],'uchar');
if l ~= m*n, l, error('HSI image file is wrong length'), end
% Image elements are colormap indices, so start at 1.
X = X'+1;

fclose(fp);

disp('end');
else
error('Image file name must end in ''raw'' or ''pgm''.')
end
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
小米摄像头离线人在外地怎么办 win11如何固定电脑桌面图标 QQ三国的当代杰出少年是怎么得的? 三国人物风云榜的作者简介 三国人物风云榜作者简介 三国人物风云榜目录 三国人物风云榜内容提要 w10电脑不动黑屏w10系统开机黑屏只有鼠标箭头怎么回事 ...FRAMEWORK中的Action, Control, Resource, Model到底是什么关系... windframework特点 大学社团应该有什么规章制度 包皮龟头上有白色的污垢是什么 magic3手机怎么样?荣耀新款手机 matlab中,怎么读取文件的内容,并画图表示 郑州同城跑腿电话多少?UU跑腿的速度快不快? 怎么成立社团 具体该如何写申请!在给学校的时候还要给社团的在章程!怎么写!我要组建的是象棋协会 龟头上有白色的尿垢 怎样快速除去? magic3与荣耀30 pro两款手机都有ar测量功能吗? matlab中怎样读取各种格式的图像文件 UU跑腿电话谁知道??? 昨天面试社团新成员,有些选上了,需要短信通知,如何写? 荣耀magic3荣耀50哪个值得买 龟头上为什么天天有尿垢?白的一层在龟头上~ 如何使用matlab读取多层文件夹中的所有数据文件 同城跑腿客服电话是多少?怎么联系同城跑腿平台? 荣耀magic3和荣耀30pro(+)应该选哪个?哪个性价比高? 如何读取地形图信息matlab 举办活动通知怎么写? uu跑腿万能帮帮是是干什么的,怎么完成订单? 荣耀magic3和荣耀X30的区别,12G+256G的配置。价格对比? 衡水UU跑腿电话是多少?怎么下单? 荣耀Magic3 和 iQOO 8 选哪个好? 怎么判断双面呢到底是双层缝合的真双面还是只有一层面料的假货? 请描 ... 龟头里现在每天都有白色的污垢,以前没有,是什么问题 学校社团章程怎么写? matlab 读三维raw格式图像文件数据 关于双面呢大衣上各种“毛“成分? 我的阴茎龟头上有一层白色的东西,这是什么病啊 荣耀magic3前摄像头还不如荣耀其它 社团换届怎么问问题 matlab 如何读取按要求读取如下dat文件 龟头每天都有一层白色的东西事什么~? 活动通知怎么写? 龟头最近有异常,白色污垢特别多,怎么回事。 如何用matlab读取.raw高光谱文件 盒子支付手机刷卡器是什么?怎么用? 荣耀magic3跟荣耀30pro哪个好 大学社团换届总结怎么写 龟头上经常有白色的污垢,并且会痒痒,是什么原因 支付宝盒怎么重新设置?