第七課 模糊圖像
1.模糊處理:Smooth/Blur,降低噪聲,實際爲卷積計算,爲線性濾波
//size爲窗口大小
歸一化盒子濾波(均值濾波):
blur(Mat src,Mat dst,Size(xradius,yradius),Point(-1,-1));
高斯濾波:
GaussianBlur(Mat src,Mat dst,Size(11,11),sigmax,sigmay);x,y必須爲正奇數
2.中值濾波
統計排序濾波器:對椒鹽噪聲有很好的抑制作用
//ksize必須大於1且爲奇數
medianBlur(Mat src,Mat dst,ksize)
3.雙邊濾波
均值濾波無法克服邊緣像素信息丟失缺陷,原因是均值濾波是基於平均權重
高斯濾波部分克服了該缺陷,但是無法完全避免,因爲沒有考慮像素值的不同
高斯雙邊模糊是邊緣保留的濾波方法,避免了邊緣信息的丟失,保留了圖像輪廓不變
//15-計算的半徑,如果爲-1,則根據sigma space來計算
//150-sigma color決定多少差值之內的像素會被計算
//3-sigma space如果d的值大於0則聲明無效,否則根據它來計算d值
bilateralFilter(src,dst,d=15,150,3)
第八課 腐蝕與膨脹
圖像形態學操作-基於形狀的一系列圖像處理操作的合集,主要是基於集合論的形態學數學
形態學四個基本操作:腐蝕、膨脹、開、閉
膨脹與腐蝕是圖像處理中最常用的形態學操作手段
1.腐蝕:消除小的噪聲塊,底色暗,噪聲塊亮
//形狀(MORPH_RECT、MORPH_CROSS、MORPH_ELLIPSE)、大小(奇數)、錨點默認Point(-1,-1)意思爲中心像素
kernel=getStructuringElement(shape,Size ksize,Point anchor
erode(src,dst,kernel)
2.膨脹:消除小的噪聲塊,底色亮,噪聲塊暗
dilate(src,dst,kernel)
3.動態調整結構元素的大小
TrackBar--createTrackbar(const String&trackbarname,const String winName,int*value,
int count,TrackBarcallback func,void*userdata=0)
eg:
main函數中調用
createTrackbar("Element size", "output", &element_size, max_size, CallBack_Demo);
CallBack_Demo(0, 0);
子函數:
void CallBack_Demo(int, void*)
{
int s = element_size * 2 + 1;
Mat kernel = getStructuringElement((MORPH_RECT),Size(s,s), Point(-1, -1));
//dilate(src, dst, kernel,Point(-1,-1),1);
erode(src,dst,kernel);
imshow("output", dst);
return;
}