Opencv學習筆記(八) -------中值濾波和雙邊濾波

(一)中值濾波
-統計排序濾波器
-對椒鹽噪聲有很好的抑制作用
在這裏插入圖片描述
對3*3領域像素進行排序
取中值作爲中心像素點

(二)雙邊濾波
高斯雙邊濾波是邊緣保留的濾波方法,避免了邊緣信息的缺失,保留了圖像輪廓不變
在這裏插入圖片描述
判斷相鄰像素點是否相差太大
選擇性的進行模糊

(三)相關API
(1)中值模糊medianBlur(Mat src,Mat dst,Ksize)

-Ksize必須是大於1而且是奇數

(2)雙邊模糊bilateralFilter(src,dst,d = 15,150,3)
-15-計算的半徑,如果提供-1,則根據sigma space參數取值

-150-決定差值多少之內的像素會被計算

-3-sigma space,如果d值大於0則聲明無效,否則根據它來計算d值大小

(代碼部分)

#include <opencv2/opencv.hpp>
#include <iostream>
#include <math.h>

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
	Mat src;
	src = imread("D:/picture/Curry.jpeg");

	if (src.empty())     //如果沒有找到圖片
	{
		printf("could not find picture.....\n");
		return -1;
	}

	namedWindow("input image", CV_WINDOW_AUTOSIZE);
	imshow("input image", src);

	Mat dst = src.zeros(src.size(), src.type());
	Mat dou = src.zeros(src.size(), src.type());
	medianBlur(src, dst, 5);
	namedWindow("中值濾波", CV_WINDOW_AUTOSIZE);
	imshow("中值濾波", dst);
	bilateralFilter(src, dou, 5, 80, 1);
	namedWindow("雙邊濾波", CV_WINDOW_AUTOSIZE);
	imshow("雙邊濾波", dou);

	waitKey(0);   //等待
	return 0;
}

實驗效果
在這裏插入圖片描述

發佈了12 篇原創文章 · 獲贊 10 · 訪問量 559
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章