资源简介

实现功能: 实验目标 了解图像颜色空间的转换关系。 了解图像的文件结构。 实验内容 完成如下颜色空间的转换。(4 Points) RGB -> YIQ RGB -> HSI RGB -> YCbCr RGB -> XYZ 选做: 自己实现对 BMP 文件头的读取,并解析 BMP 图像文件。 (2.5 Points) 补充说明 程序从命令行中读取文件路径,并输出 4 个文件,文件名如下: 图像原始文件名-学号-YIQ.bmp 图像原始文件名-学号-HSI.bmp 图像原始文件名-学号-YCbCr.bmp 图像原始文件名-学号-XYZ.bmp 了解图像的文件结构。

资源截图

代码片段和文件信息

function rgb=bmpReader(bmpName)
% 自己实现的BMP文件读取函数
% 输入:bmp文件名字
% 输出:rgb格式的矩阵,
%   大小:图像高*宽*3
%
BITMAPFILEHEADER=14; %根据BMP格式定义BMP文件头大小和头信息文件大小
BITMAPINFOHEADER=40;
fid = fopen(bmpName ‘rb‘);%大端法读取
if fid<=0
    fprintf(‘出现错误没有这个文件‘);
    return;
end
%% 按照格式读取bmp文件头
fhead.bfType=fread(fid2‘bit8‘);
if fhead.bfType(1)~=66||fhead.bfType(2)~=77
    fprintf(‘Wrong!!It is not a .BMP file!!!!!\n‘);
    return;
end
fhead.bfSize=fread(fid1‘uint32‘);
fhead.bfReserved1=fread(fid1‘uint16‘);
fhead.bfReserved2=fread(fid1‘uint16‘);
fhead.bfOffBits=fread(fid1‘uint32‘);

fprintf(‘BITMAPFILEHEADER 大小为:%d\n‘ BITMAPFILEHEADER);
fprintf(‘BITMAPINFOHEADER 大小为:%d\n‘ BITMAPINFOHEADER);
fprintf(‘%s\t\t-- bfType: 位图文件的类型,必须为\n‘ fhead.bfType);
fprintf(‘%d\t\t-- bfSize:  位图文件的

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       6077  2018-12-08 21:50  bmpReader.m

     文件       3416  2018-12-08 23:04  Demo.m

     文件         93  2018-12-08 23:08  readme.txt

     文件       1770  2018-12-08 21:53  rgb2hsi.m

     文件        802  2018-12-08 21:55  rgb2XYZ.m

     文件        616  2018-12-08 21:56  rgb2YCbCr.m

     文件        624  2018-12-08 21:56  rgb2yiq_func.m

----------- ---------  ---------- -----  ----

                13398                    7


评论

共有 条评论