日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

非线性滤波(opencv)

發(fā)布時間:2023/11/27 生活经验 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 非线性滤波(opencv) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

中值濾波

對于3*3窗口,利用窗口內(nèi)像素灰度值的中值代替中心點像素值,也就是先對窗口內(nèi)的9個像素排序,然后取第五個像素代替中心點像素值。該方法在去除椒鹽噪聲、脈沖噪聲方面效果很好,因為該方法可以直接過濾較高或較低的像素值。

椒鹽噪聲也稱為脈沖噪聲,是圖像中經(jīng)常見到的一種噪聲,它是一種隨機出現(xiàn)的白點或者黑點,可能是亮的區(qū)域有黑色像素或是在暗的區(qū)域有白色像素。

函數(shù)原型:

void medianBlur(InputArray src, OutputArray dst, int kszie);

參數(shù)詳解;

第一個參數(shù):InputArray類型的src,輸入圖像,Mat類的對象。該函數(shù)對通道是獨立處理的,且可以處理1、3或4得到的Mat圖像,但是待處理的圖像深度應(yīng)該是CV_8U,CV_16U,CV_32F,但是對于較大孔徑尺寸的圖像,只能是CV_8U。

第二個參數(shù):OutputArray類型的dst,目標圖像,需要和輸入圖像有相同的尺寸和類型。

第三個參數(shù):int類型ksize,孔徑的線型尺寸,必須是大于1的奇數(shù)。

雙邊濾波

雙邊濾波(Bilateral filter)是一種非線性的濾波方法,雙邊濾波器的好處是可以做邊緣保存(edge preserving),在圖像的平坦區(qū)域,像素值變化很小,對應(yīng)的像素范圍域權(quán)重接近于1,此時空間域權(quán)重起主要作用,相當于進行高斯模糊;在圖像的邊緣區(qū)域,像素值變化很大,像素范圍域權(quán)重變大,從而保持了邊緣的信息。?

函數(shù)原型:

void bilateralFilter(InputArray src, OutputArray dst, int d,double sigmaColor,double sigmaSpace,int borderType=BORDER_DEFAULT);

參數(shù)詳解;

第一個參數(shù):InputArray類型的src,輸入圖像,Mat類的對象。該函數(shù)對通道是獨立處理的,且可以處理1、3或4得到的Mat圖像,但是待處理的圖像深度應(yīng)該是CV_8U,CV_16U,CV_32F,但是對于較大孔徑尺寸的圖像,只能是CV_8U。

第二個參數(shù):OutputArray類型的dst,目標圖像,需要和輸入圖像有相同的尺寸和類型。

第三個參數(shù):int類型d,過濾像素鄰域的直徑。

第四個參數(shù):double類型的sigmaColor,顏色空間濾波器的值。參數(shù)越大,表明像素鄰域內(nèi)有越寬的顏色混合到一起。

第五個參數(shù):double類型的sigmaSpace,坐標空間濾波器的值。參數(shù)越大,表明越遠的像素有相互影響。

程序

#include<opencv2/opencv.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<vector>
#include<time.h>
#include<opencv2/core/core.hpp>
#include <iostream>
using namespace cv;
using namespace std;
//--------------------------------------【main( )函數(shù)】-----------------------------------------
//          描述:控制臺應(yīng)用程序的入口函數(shù),我們的程序從這里開始執(zhí)行
//-------------------------------------------------------------------------------------------------Mat src = imread("D:\\VC\\c++\\opencv源碼\\opencv源碼\\12.bmp");
Mat dst1 ,dst2;
int mediafilter = 3;//中值濾波參數(shù)值
int shuangfilter = 4;//雙邊濾波參數(shù)值//中值濾波回調(diào)函數(shù)
void on_media(int, void*)
{medianBlur(src, dst1, 2 * mediafilter+1);imshow("中值濾波", dst1);
}//雙邊濾波回調(diào)函數(shù)
void on_shuang(int, void*)
{bilateralFilter(src, dst2, shuangfilter, (double)shuangfilter*2+1, shuangfilter/2);imshow("雙邊濾波", dst2);
}
int main()
{double time0 = static_cast<double>(getTickCount());//記錄起始時間namedWindow("原圖", WINDOW_FREERATIO);namedWindow("中值濾波", WINDOW_FREERATIO);namedWindow("雙邊濾波", WINDOW_FREERATIO);imshow("原圖", src);//中值濾波createTrackbar("內(nèi)核值", "中值濾波", &mediafilter, 20, on_media);on_media(mediafilter, 0);//雙邊濾波createTrackbar("內(nèi)核值", "雙邊濾波", &shuangfilter, 20, on_shuang);on_shuang(shuangfilter, 0);time0 = ((double)getTickCount() - time0) / getTickFrequency();cout << "此方法運行時間:" << time0 << "秒" << endl;//輸出運行時間waitKey(0);return 0;
}

?

總結(jié)

以上是生活随笔為你收集整理的非线性滤波(opencv)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。