資源簡介
實現功能:
實驗目標
了解圖像顏色空間的轉換關系。
了解圖像的文件結構。
實驗內容
完成如下顏色空間的轉換。(4 Points)
RGB -> YIQ
RGB -> HSI
RGB -> YCbCr
RGB -> XYZ
選做:
自己實現對 BMP 文件頭的讀取,并解析 BMP 圖像文件。 (2.5 Points)
補充說明
程序從命令行中讀取文件路徑,并輸出 4 個文件,文件名如下:
圖像原始文件名-學號-YIQ.bmp
圖像原始文件名-學號-HSI.bmp
圖像原始文件名-學號-YCbCr.bmp
圖像原始文件名-學號-XYZ.bmp
了解圖像的文件結構。
代碼片段和文件信息
%讀取單色bmp文件的樣例
clear
clc?
close?all
fprintf(‘請輸入單色bmp文件的路徑:\n‘);
fprintf(‘1.單色bmp文件的自實現的文件讀取\n‘);
fprintf(‘2.24色bmp文件的自實現的文件讀取\n‘);
fprintf(‘3.RGB?->?YIQ?\n‘);
fprintf(‘4.RGB?->?HSI?\n‘);
fprintf(‘5.RGB?->?YCbCr?\n‘);
fprintf(‘6.RGB?->?XYZ?\n‘);
fprintf(‘7.RGB?->?ISH?->?QIY?->?CrCbY?->?ZYX?\n‘);
choose=input(‘which?operate?do?you?want?to?try?\n‘‘s‘);
switch?choose
????case?‘1‘
????????filename=input(‘請輸入單色bmp文件的路徑+名字,格式默認bmp\n‘‘s‘);
????????filename=strcat(filename‘.bmp‘);
????????bmpReader(filename);
????????
????????[AM]=imread(filename‘bmp‘);
????????%圖像數據的讀取,圖像數據放入矩陣A中,顏色數據放入矩陣M中
????????figure
????????imshow(AM);title(‘用matlab的庫函數讀取原圖‘);
????????if?isempty(M)
????????????fprintf(‘不是單色BMP文件格式‘);
????????????return;
????????end
????????M(:1)=0.5;??%把顏色數據置為0
????????figure
????????imshow(AM);title(‘用調色板改變顏色后的圖像‘);
????case?‘2‘
???????filename=input(‘請輸入24色bmp文件的路徑+名字,格式默認bmp\n‘‘s‘);
???????filename=strcat(filename‘.bmp‘);
???????bmpReader(filename);
???????[A]=imread(filename‘bmp‘);
???????%圖像數據的讀取,圖像數據放入矩陣A中,顏色數據放入矩陣M中
???????figure
???????imshow(A);title(‘用matlab的庫函數讀取原圖‘);
????case?‘3‘
????????filename=input(‘請輸入文件的路徑+名字,格式常用即可\n‘‘s‘);
????????filename=strcat(filename‘.bmp‘);
????????bmpReader(filename);
????????rgb2yiq_func(filename);
????case?‘4‘
????????filename=input(‘請輸入文件的路徑+名字,格式常用即可\n‘‘s‘);
????????rgb=imread(filename);
????????hsi=rgb2hsi(rgb);
?????
評論
共有 條評論