matlab的基本用法---關於對影象的處理
阿新 • • 發佈:2018-11-11
matlab的基本用法一關於對影象的處理
原文
1. 讀取影象:用imread函式讀取影象檔案,檔案格式可以是TIFF、JPEG、GIF、BMP、PNG等
%讀取指定路徑下的圖片,並儲存成一個影象矩陣
imageMatrix= imread('C:\Users\AA\Pictures\traceImg.jpg');
%一般情況下,影象矩陣比較大,因此可直接對imageMatrix經行處理
%disp(imageMatrix);
2. 影象處理
f=rgb2gray(imageMatrix); %將彩色圖轉換成灰度圖 [M,N]=size(f); %檢視影象畫素大小 whos f; %檢視變數f的各個屬性 imshow(f); %顯示影象,引數是影象矩陣 %imshow()還有一個引數 %影象上所有小於等於100的數值都會顯示成黑色,所有大於等於200的數值都會顯示成白色 %figure的作用是同時顯示多張影象,即不會覆蓋之前的影象 figure,imshow(f,[100 200]);
3.寫入影象
寫入影象使用imwrite()函式。
檔名必須包括指明格式的副檔名。也可以增加第三個引數,顯式指明檔案的格式
如:
%在檔名中指明瞭影象格式 imwrite(f,'filename') ---> imwrite(imageMatrix,'traceImg.jpg') %在檔名中沒有指明格式(這是不可以的),雖然增加第三個引數,顯式指明影象格式 %但是寫入的不是圖片 imwrite(f,'filename','format') ---> imwrite(imageMatrix,'traceImg','jpg') %這是錯誤的 imwrite(f,'filename','format') ---> imwrite(imageMatrix,'traceImg.jpg','jpg') %這是正確的 %在filename中也可以指定寫入圖片的路徑,如: imwrite(imageMatrix,'C:\Users\AA\Pictures\traceImg.jpg')
還可以有其他引數,如質量引數:
%q是0到100之間的一個整數。對比不同質量的影象效果。
imwrite(f, 'filename.jpg', 'quality', q);
4.其它1
獲取影象資訊:
% imfinfo(FILENAME,FMT) % returns a structure whose fields contain information about an image in a graphics file. FILENAME is a string that specifies the name of the graphics file, and FMT is a string that specifies the format of the file. %Fields of the structure includes Filename,FileModDate,FileSize,Format,FormatVersion Width,Height,BitDepth,ColorType K=imfinfo('C:\Users\AA\Pictures\traceImg.jpg'); %將影象的資訊儲存在變數K中 image_bytes = K.Width * K.Height * K.BitDepth / 8; compressed_btyes = K.FileSize; compression_ratio = image_bytes / compressed_bytes
5.其它2
1.由於影象轉換成了影象矩陣,所以對矩陣的操作也可以平移到對影象矩陣的操作。
2.影象處理工具包還提供其他一些算術運算:
imadd 兩個影象相加,或者一個影象加上一個常量
imsubstract 兩個影象相減,或者一個影象減掉一個常量
immultiply 兩個影象相乘,或者一個影象乘上一個常量
imdivide 兩個影象相除,或者一個影象除以一個常量
imabsdiff 兩個影象的差的絕對值
imcomplement 求一個影象的反色圖
inlincomb 求一組影象的線性組合
以上這些函式的引數都是矩陣或者常數形式,返回值也是一個矩陣。
如:
imageMatrixOne=imread('C:\Users\AA\Pictures\traceImg.jpg'); %矩陣
imageMatrixTwo=imread('C:\Users\AA\Pictures\007.jpg'); %矩陣
imshow(imageMatrixOne(100:300,100:300)); %子圖
imshow(imadd(imageMatrixTwo,102)); %圖加常量
imshow(imcomplement(imageMatrixOne)); %反色圖
3.影象就相當於一個矩陣,所以對影象處理可以理解成對一個矩陣的處理,在此基礎上,我們可以提取一個影象的子圖或者計算一個影象畫素的平均直等等。在這裡由於篇幅原因,僅僅寫出基本的關於影象的用法,更多其他應用還需查閱相關文件。