最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++?opencv圖像平滑濾波器使用示例

 更新時間:2022年05月12日 16:27:52   作者:淺念念52  
這篇文章主要為大家介紹了C++?opencv數(shù)字圖像處理圖像平滑濾波器的使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

前言

圖像平滑是一種實用的數(shù)字圖像處理技術(shù),一個較好的平滑處理方法既能消除圖像噪聲,又不使圖像邊緣輪廓和線條變模糊。

一、均值濾波

歸一化方框濾波器是很簡單的濾波器,輸出像素值是核窗口內(nèi)像素值的均值,如果使用歸一化處理,方框濾波就是均值濾波,實際上均值濾波是方框濾波歸一化后的特殊情況。均值不能很好的保護細節(jié)。

1.均值濾波函數(shù)

opencv提供了blur函數(shù)來實現(xiàn)均值濾波,函數(shù)聲明如下:

void blur(InputArray src, OutputArray dst,
		Size ksize, Point anchor = Point(-1, -1),
		int borderType = BORDER_DEFAULT);
	src 輸入圖像
	dst 輸出圖像
	Ksize 內(nèi)核的大小
	anchor 錨點 默認值Point(-1, - 1)表示錨位于內(nèi)核中心。
	bordertype 邊界像素模式

2.均值濾波代碼

#include<iostream>
#include<opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
	Mat img1, img2;
	img1 = imread("貓1.jpg");
	imshow("原圖", img1);
	blur(img1, img2, Size(20, 20));
	imshow("線性濾波", img2);
	waitKey(0);
}

效果如下:

二、高斯濾波

高斯濾波是一種線性平滑濾波,對于除去高斯噪聲有很好的效果,高斯濾波是對輸入數(shù)組的每個點與輸入的高斯濾波模板執(zhí)行卷積計算,然后精這些結(jié)果一塊組成濾波后的輸出數(shù)組,具體操作是,用一個模板(或者卷積,掩模)掃描圖像中的每一個像素,用模板確定的鄰域內(nèi)像素的加權(quán)平均灰度值,去代替模板中心像素點的值。

1.高斯濾波函數(shù)

opencv提供了GaussianBlur函數(shù)來實現(xiàn)均值濾波,函數(shù)聲明如下:

void GaussianBlur(InputArray src, OutputArray dst, Size ksize,
		double sigmaX, double sigmaY = 0,
		int borderType = BORDER_DEFAULT);
	src 輸入圖像
	dst 輸出圖像
	ksize 高斯核大小  他們必須是奇數(shù)
	sigmax x方向上是高斯核標準差
	sigmay y方向上是高斯核標準差
	bordertype 邊界像素模式

2.高斯濾波代碼

int main()
{
	Mat img1, img2;
	img1 = imread("貓1.jpg");
	imshow("原圖", img1);
	GaussianBlur(img1, img2, Size(35, 35),0);
	imshow("高斯濾波", img2);
	waitKey(0);
}

效果圖:

三、中值濾波

中值濾波是用像素點領(lǐng)域灰度值的中值來代替該像素點的灰度值,也就是說用一片區(qū)域的中間值來代替所有值,可以去除最大值和最小值 ,它的優(yōu)點是對去除斑點噪聲和椒鹽噪聲很有用,缺點是中值濾波時間是均值濾波的5倍以上

1.中值濾波函數(shù)

opencv提供了medianBlur函數(shù)來實現(xiàn)均值濾波,函數(shù)聲明如下:

void medianBlur(InputArray src, OutputArray dst, int ksize);
	src 輸入
	dst 輸出
	Ksize 孔徑線性尺寸 它必須是奇數(shù)且大于1

2.中值濾波代碼

int main()
{
	Mat img1, img2;
	img1 = imread("貓1.jpg");
	imshow("原圖", img1);
	medianBlur(img1, img2,9);
	imshow("中值濾波", img2);
	waitKey(0);
}

效果如下:

四、雙邊濾波

之前所說的濾波器都是為了平滑圖像,問題是有些時候這些濾波器不僅削弱了噪聲,連帶著吧邊緣也磨掉了,為了避免這樣的情形(至少在一定程度上),我們可以使用雙邊濾波,它是一種非線性濾波器,它可以達到邊緣,降噪平滑的效果,也是采用加權(quán)平均的方法,用周邊像素亮度值的加權(quán)平均代表某個像素的強度。雙邊濾波與高斯濾波相比,對于圖像的邊緣信息能夠更好的保存

1.雙邊濾波函數(shù)

opencv提供了bilateralFilter函數(shù)來實現(xiàn)均值濾波,函數(shù)聲明如下:

	void bilateralFilter(InputArray src, OutputArray dst, int d,
		double sigmaColor, double sigmaSpace,
		int borderType = BORDER_DEFAULT);
	src 輸入
	dst 輸出
	d 濾波時所用的每個像素鄰域的直徑
	sigmaColor 在顏色空間中過濾。 
	sigmaSpace 在坐標空間中過濾 
	borderType 邊界像素模式

2.雙邊濾波代碼

int main()
{
	Mat img1, img2;
	img1 = imread("貓1.jpg");
	imshow("原圖", img1);
	bilateralFilter(img1, img2, 30,30,30);
	imshow("雙邊濾波", img2);
	waitKey(0);
}

效果如下:

總結(jié)

以上就是本文全部內(nèi)容,簡單介紹了線性濾波(均值濾波和高斯濾波)和非線性濾波(中值濾波和雙邊濾波),更多關(guān)于opencv圖像平滑的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 如何通過UltraEdit解析BMP文件內(nèi)部結(jié)構(gòu)(BMP位圖基礎(chǔ))

    如何通過UltraEdit解析BMP文件內(nèi)部結(jié)構(gòu)(BMP位圖基礎(chǔ))

    我們先打開畫圖隨便畫一幅圖并采用24位bmp圖像格式保存,就得到了一張24位真彩色的位圖,下面我們來詳細分析bmp位圖的各個組成部分,感興趣的朋友跟隨小編一起看看吧
    2021-08-08
  • Qt5中QML自定義環(huán)形菜單/環(huán)形選擇框的實現(xiàn)

    Qt5中QML自定義環(huán)形菜單/環(huán)形選擇框的實現(xiàn)

    本文主要介紹了Qt5中QML自定義環(huán)形菜單/環(huán)形選擇框的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C語言實現(xiàn)貪吃蛇游戲代碼

    C語言實現(xiàn)貪吃蛇游戲代碼

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)貪吃蛇游戲代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • C++ STL 四種智能指針的用法詳解

    C++ STL 四種智能指針的用法詳解

    C++ 標準模板庫 STL(Standard Template Library) 一共給我們提供了四種智能指針:auto_ptr、unique_ptr、shared_ptr 和 weak_ptr,今天給大家詳細介紹這幾種指針的具體用法,需要的朋友參考下吧
    2021-06-06
  • 基于C++實現(xiàn)信息管理系統(tǒng)

    基于C++實現(xiàn)信息管理系統(tǒng)

    這篇文章主要為大家詳細介紹了基于C++實現(xiàn)信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 解析如何利用switch語句進行字符統(tǒng)計

    解析如何利用switch語句進行字符統(tǒng)計

    本篇文章是對如何利用switch語句進行字符統(tǒng)計的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • C/C++中的名字空間與作用域示例詳解

    C/C++中的名字空間與作用域示例詳解

    這篇文章主要給大家介紹了關(guān)于C/C++中名字空間與作用域的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用c/c++具有一定的參考學習價值,需要的朋友們下面隨著小編來一起看看吧。
    2017-09-09
  • C++實現(xiàn)LeetCode(46.全排列)

    C++實現(xiàn)LeetCode(46.全排列)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(46.全排列),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • Visual Studio Code 配置C、C++環(huán)境/編譯并運行的流程分析

    Visual Studio Code 配置C、C++環(huán)境/編譯并運行的流程分析

    這篇文章主要介紹了Visual Studio Code 配置C、C++環(huán)境/編譯并運行的流程分析,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • C語言實現(xiàn)內(nèi)存函數(shù)的示例代碼

    C語言實現(xiàn)內(nèi)存函數(shù)的示例代碼

    本文主要介紹了C語言實現(xiàn)內(nèi)存函數(shù)的示例代碼,包括memcpy、memmove、memset和memcmp的使用,具有一定的參考價值,感興趣的可以了解一下
    2025-02-02

最新評論

台安县| 托克逊县| 剑川县| 潮州市| 阿巴嘎旗| 隆尧县| 太康县| 南皮县| 屏南县| 堆龙德庆县| 兴化市| 水富县| 怀安县| 九台市| 乌拉特中旗| 玉山县| 封开县| 织金县| 文昌市| 南漳县| 镇平县| 宁乡县| 普格县| 彭山县| 招远市| 尚志市| 龙门县| 井冈山市| 新蔡县| 通山县| 富阳市| 江永县| 靖边县| 类乌齐县| 易门县| 色达县| 芜湖市| 晋中市| 桃园县| 黄陵县| 沾化县|