1.基本函數:
iread('文件路徑');
idisp();
2.一元操作:
imd=idouble(im); //將像素從unit8(範圍在0-255的整數像素)到範圍在[0,1]的雙精度值
grey=imono(im); //將彩色圖像轉變成灰度圖像。
ihist();//顯示每一個像素值出現的次數
im=igamma(im,1/0.45); //伽馬編碼,一種非線性一元操作
3.二元操作:
isamesize(image1,image2); //將2縮放並裁剪到跟1相同的大小
........
4.空間操作
4.1互相關 , K是互相關核,對於每一個輸出像素,對應輸入圖像中的像素窗口w要逐個元素地與互相關核K相乘。
在工具箱中,互相關使用函數iconv表示。iconv(image,K);
4.1.1平滑處理(光滑化、模糊化或者散焦)
K=ones(21,21)/21^2; //每一個輸出像素都是輸入圖像中與之相對應的21x21相領像素的平均值 ->平均值濾波
二維高斯函數(關於原點對稱,曲線下方體積爲1)的擴展由標準差參數控制。 ->高斯濾波
K=kguass(5); //指定標準差爲5像素
4.1.2邊界檢測:
lena=iread('C:\Users\Administrator\Desktop\matlab實驗照片\2.jpeg','double','grey');
p=lena(60,:); //在v=60處圖像中的一條水平線
沿着這個橫截面的一階倒數是,一階倒數可以用diff函數計算。->亮度變化的倒數
在v點處的導數也可以寫成對稱的一階差分:
它等同於和下面的一維互相關核求互相關運算:
將圖像與這個核求互相關:
K=[-0.5 0 0.5];
idsip(iconv(lena,K),'invsigned') ->圖片具有高水平梯度的豎直邊緣清晰可見。效果如下所示(上面爲原圖):
利用索伯互相關覈計算水平梯度,利用三行水平梯度的加權值。
Du=ksobel,上圖爲原圖,下面爲處理之後的
坎尼算子:
算法大致流程:
1、求圖像與高斯平滑濾波器卷積:
2、使用一階有限差分計算偏導數的兩個陣列P與Q:
3、幅值和方位角:
4、非極大值抑制(NMS ) :細化幅值圖像中的屋脊帶,即只保留幅值局部變化最大的點。
將梯度角的變化範圍減小到圓周的四個扇區之一,方向角和幅值分別爲:
非極大值抑制通過抑制梯度線上所有非屋脊峯值的幅值來細化M[i,j],中的梯度幅值屋脊.這一算法首先將梯度角θ[i,j]的變化範圍減小到圓周的四個扇區之一
edges=icanny(lena,2);效果如下所示:
4.2模板匹配
函數s(T,W)是一個標量測度,用來描述兩幅相同大小的圖像T和W之間的相似性。
常用方法有:絕對差值(SAD),差值平方和(SSD)以及互相關(NCC)