資源簡介
實現功能: 實驗目標 了解圖像顏色空間的轉換關系。 了解圖像的文件結構。 實驗內容 完成如下顏色空間的轉換。(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
- 上一篇:諧波恢復的ARMA建模
- 下一篇:Dijkstra算法的MATLAB實現
評論
共有 條評論