OpenCv學習:模糊圖像與腐蝕膨脹

第七課 模糊圖像
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;
	}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章