Matlab 教學
Matlab 教學. Speaker :陳珮妮 Date : 2013/03/21. MATLAB 的影像格式. MATLAB 最常處理的影像格式為索引影像 ( Indexed Images ) 顯示此類型影像的語法如下: image(X) colormap (map) 其中 X 為影像的資料矩陣, map 為色盤矩陣。 色盤矩陣的大小為 K×3 ,每個橫列由三個元素所組成,分別是 R (紅) 、 G (綠)、 B (藍),每個元素的範圍為 0~1
Matlab 教學
E N D
Presentation Transcript
Matlab教學 Speaker:陳珮妮 Date:2013/03/21
MATLAB的影像格式 • MATLAB 最常處理的影像格式為索引影像(Indexed Images) • 顯示此類型影像的語法如下: image(X) colormap(map) 其中X為影像的資料矩陣,map為色盤矩陣。 • 色盤矩陣的大小為K×3,每個橫列由三個元素所組成,分別是R(紅)、G(綠)、B(藍),每個元素的範圍為0~1 • X的值為1~K,也就是當X(i, j)的值為p,則像素點(i, j) 的顏色為map(p, :)這一列的向量所決定。
影像檔案的讀取與寫入 • imread指令可用於讀取影像檔案。 • imwrite則可用於寫入影像檔案。 • 這兩個指令可以處理的影像格式有下列幾種:
imfinfo指令 • imfinfo指令可傳回影像檔案的各項資訊,例如: • info1=imfinfo('simulinkteam.jpg') • info2=imfinfo('sbtree.gif') • 對於不同的檔案格式,imfinfo傳回的資訊項目可能有所不同。 • info2=imfinfo('sbtree.gif') • info2 = • Filename: 'sbtree.gif' • FileModDate: '10-九月-1997 14:53:14' • FileSize: 7121 • Format: 'GIF' • FormatVersion: '87a' • Width: 99 • Height: 80 • BitDepth: 8 • ColorType: 'indexed' • FormatSignature: 'GIF87a' • BackgroundColor: 0 • AspectRatio: 0 • ColorTable: [256x3 double] • Interlaced: 'no' • info1=imfinfo(‘simulinkteam.jpg') • info1 = • Filename: 'simulinkteam.jpg' • FileModDate: '28-三月-2000 17:30:36' • FileSize: 24071 • Format: 'jpg' • FormatVersion: '' • Width: 234 • Height: 126 • BitDepth: 24 • ColorType: 'truecolor' • FormatSignature: '' • NumberOfSamples: 3 • CodingMethod: 'Huffman' • CodingProcess: 'Sequential' • Comment: {[1x70 char]}
特效目錄 • Grayscale 灰階 • Negative 負片效果 • Flipping vertically 垂直翻轉 • Flipping horizontally 水平翻轉 • Switching top left and bottom right 垂直水平翻轉 • Darkening色調加深 • Lightening色調加亮 • Scrolling vertically 垂直滾動 • Scrolling horizontally 水平滾動 • Zooming in 放大 • Zommingout 縮小 • Blurring模糊
Gray figure灰階圖片 • ori = imread('Shunsuke.jpg'); %讀入圖片 • gri = rgb2gray(ori); %將RGB圖片轉成Gray figure • imshow(gri); • imwrite(gri,'gray.jpg');
Negative 負片效果 • ori= imread('Shunsuke.jpg'); %讀入圖片 • gri= rgb2gray(ori); %將RGB圖片轉成Gray figure • imshow(gri); • nei= imcomplement(gri); %將灰階圖片做負片化 • imshow(nei); • imwrite(nei,'negative.jpg');
Flipping vertically 垂直翻轉 • ori = imread('Shunsuke.jpg'); %讀入圖片 • gri = rgb2gray(ori); %將RGB圖片轉成Gray figure • imshow(gri); • fvim= gri(end:-1:1, :,:); %將灰階圖片垂直翻轉 • fvim = flipud(gri); %將灰階圖片垂直翻轉,沿水平軸 • imshow(fvim); • imwrite(fvim,'flipping vertically.jpg');
Flipping horizontally 水平翻轉 • ori = imread('Shunsuke.jpg'); %讀入圖片 • gri = rgb2gray(ori); %將RGB圖片轉成Gray figure • imshow(gri); • fhim= fliplr(gri); %將灰階圖片水平翻轉,沿垂軸 • imshow(fhim); • imwrite(fhim, 'flipping horizontally.jpg');
Switching top left and bottom right 垂直水平翻轉 • ori = imread('Shunsuke.jpg'); %讀入圖片 • gri = rgb2gray(ori); %將RGB圖片轉成Gray figure • imshow(gri); • sim = fliplr(fvim); %將垂直翻轉的圖片在做水平翻轉 • imshow(sim); • imwrite(sim,'switchin.jpg');
Darkening 色調加深 • ori = imread('Shunsuke.jpg'); %讀入圖片 • gri = rgb2gray(ori); %將RGB圖片轉成Gray figure • imshow(gri); • %brighten(-0.8); %亮度變深,目前指令沒有改變對上一個圖像加深 • dim = imadjust(gri,[ ],[ ],2); %亮度變深 • imshow(dim); • imwrite(dim,'darkening.jpg');
Lightening 色調加亮 • ori = imread('Shunsuke.jpg'); %讀入圖片 • gri = rgb2gray(ori); %將RGB圖片轉成Gray figure • imshow(gri); • brighten(0.8); %亮度變亮,目前指令沒有改變對上一個圖像加亮
Scrolling vertically 垂直滾動 • ori = imread('Shunsuke.jpg'); %讀入圖片 • gri = rgb2gray(ori); %將RGB圖片轉成Gray figure • imshow(gri); • svim= circshift(gri,[-300,0]); %垂直滾動,[a,b],a 決定垂直滾動負值像上正值向下 • imshow(svim); • imwrite(svim,'scroll vertically.jpg');
Scrolling horizontally 水平滾動 • ori = imread('Shunsuke.jpg'); %讀入圖片 • gri = rgb2gray(ori); %將RGB圖片轉成Gray figure • imshow(gri); • shim = circshift(gri,[0,-300]); %水平滾動,[a,b],b 決定水平滾動負值像左正值向右 • imshow(shim); • imwrite(shim,'scroll horizontally.jpg');
Zooming in 放大 • [X Y] = size(gri); %把灰階突的大小存到矩陣 • ziim = imresize(gri,2); %把灰階圖放大 • imshow(ziim); • imwrite(ziim,'zooming in.jpg'); • zim = imcrop(ziim,[500 500 X Y]); %裁切放大後的灰階圖從(500,500)的位置開始,裁下原灰階圖的大小 • imshow(zim); • imwrite(zim,'zooming in end.jpg');
Zomming out 縮小 • ori = imread('Shunsuke.jpg'); %讀入圖片 • gri = rgb2gray(ori); %將RGB圖片轉成Gray figure • imshow(gri); • zoim= imresize(gri,[50 50]); %縮小到50*50的大小 • imshow(zoim); • imwrite(zoim,'zooming out.jpg');
Blurring 模糊 • ori = imread('Shunsuke.jpg'); %讀入圖片 • gri = rgb2gray(ori); %將RGB圖片轉成Gray figure • imshow(gri); • b = fspecial('average',[10 10]); %制定一個20*20的平均濾波 • bim = imfilter(gri,b); %將平均濾波加入到灰階圖中,使圖變模糊 • imshow(bim); • imwrite(bim,'blurring.jpg');