2021-05-12 14:32:11
[00]數位影像處理-matlab速成
原本聽的是mooc武漢大學的數位影像處理課程,但是無奈老師讀ppt的能力太強,不太適應,後面的課程對於實驗方面的要求甚低,無奈之下到處找課程,終於找到了一個適合自己的教學《王偉強-數位影像處理》,今天開始連載,希望3.20日之前能夠完成課程的學習,加油!
預計連載的目錄
- 導言與MATLAB快速介紹
- 空域處理(I) - 亮度變換(I)
- 空域處理(II)- 折積與線性移動不變系統
- 頻域處理(I)- 傅立葉變換
- 頻域處理(II)- 高低頻濾波器與頻域處理框架
- 影象復原(I)- 噪聲與相關的去噪技術
- 影象復原(II)- 降質函數與約束最小二乘恢復方法
- 彩色影象處理
- 小波變換與影象處理(I)- 小波的相關理論
- 小波變換與影象處理(II)- 尺度函數、小波函數、快速小波變換
基本概念
數位影像處理DigitalImageProcessing,DIP
岡薩雷斯將數位影像處理看成一個黑箱,輸入一個圖片,輸出也是一個圖片
影象分析就是輸出屬性
視覺就是輸出理解
matlab:設定環境當前目錄和搜尋路徑
新增或修改搜尋路徑,右擊桌面圖示屬性修改設定起始位置
matlab:.m檔案
matlab分為兩種檔案,一種是指令碼檔案,類似於dos系統中的批次檔,特點就是所有變數都是全域性變數,執行完之後的變數不會從系統中清除。另外一種函數檔案,外部看是看不出來的,特點就是函數變數除了特殊宣告都是區域性變數。
數位影像的表示
也就是說,影象的矩陣儲存形式是從0,0位置開始,而matlab中影象的矩陣儲存形式是1,1開始。
讀取一幅影象
使用Matlab ipt讀取一幅影象,ipt就是影象處理工具箱。
f=imread('bird.jpg');
- imread從當前目錄讀取檔案,如果失敗,它將嘗試在搜尋路徑中找到該檔案
- 請注意分號;,如果不加分號,命令視窗將顯示影象的矩陣值。
- matlab中的字串是單引號。
獲取影象的資訊
顯示或寫入影象
- imshow(f)
- imshow(f,G)
- imshow(f,[low,high])
- imshow(f,[])
- imwrite(f,'filename')
- imwrite(f,'filename','ext')
- imwrite(f,'filename','quality',q)
質量指標q的範圍是0-100,值越低,影象質量越差,壓縮率越高。
影象型別
- 強度影象/灰度影象
- 灰度影象是一個資料矩陣,它的值被縮放以表示強度。
- 當灰度影象的畫素是uint8或uint16型別時,它們的取值是
[0,255]或[0,65535]範圍內的整數。 - 如果影象是double型別的,則畫素值為浮點數。按照慣例,經
過縮放之後double型別的灰度影象的畫素值落在[0,1]範圍內
- 二值影象
- 二值影象是由0和1組成的邏輯陣列。
- 數值陣列使用邏輯函數轉換為二進位制。
- 如果A包含0和1以外的元素,則使用邏輯函數將所有非零數值轉換為邏輯真(1),並將所有值為0的項轉換為邏輯假(0)
- 索引影象
BMP影象標識其為索引影象
- 影象可以是索引影象的,也可以是真顏色影象。
- 索引影象將顏色作為索引陣列儲存到colormap圖中。
資料號代表著調色盤的索引號,從下往上儲存。對於資料量大的影象節省空間
- RGB影象
是目前見到的最多的影象,又叫真彩影象。
- 真彩色影象不使用colormap;相反,每個畫素的顏色值直接儲存為RGB三元組。colormap也就是調色盤
- 在MATLAB中,真彩色影象物件的CData屬性是一個三維(m×n×3)陣列。這個陣列由三個m×n矩陣組成,它們沿著第三維連線在一起。
資料型別
C語言中主要是int,double。matlab中int分的很細,u代表不帶符號的,uint代表usigned,非負數。
資料型別和影象型別之間轉換
讀入一個圖片通常是整型,直接進行傅立葉變換是錯誤的,因此需要轉換為double型。
- 通常我們將影象稱為(資料 - 影象型別)的影象
例如「uint8強度影象」僅指代畫素值是uint8型別的強度影象 - 資料類之間轉換簡單,語法為
B = data class name(A)
其中資料類名是資料類表第一列中的名稱之一。例如A是一個uint8型別的陣列,精度更高的double型別陣列B是由命令B = double(A)生成的。這種轉換在整本書中很常見,因為matlab希望數值計算中的運算元是雙精度浮點數。
資料轉換超過255直接截斷過於粗暴,因此ipt中通常採用伸縮的方式
如何分析?im2uint8,所有超過[0,1],以外的數都會進行區分。將<0的-0.5設定為0,>1的1.5設定為1,整體乘以255
所有<0設定0,所有>255設定為1,(128-(-12))/(300+12)=0.4487
索引
w=v ' ,代表共軛轉置。
A = magic(5),每一行每一列每一個對角線的和都拉丁方5,和為65.
sum(A)是一個行向量,sum(A(
相關文章