在影像處理領域中,在真正的應用程序前,通常需要對影像進行預先處理,達到去除干擾項的目的,濾波去噪就是其中的一項影像預處理作業,
在.NET下常用OpenCV進行影像處理作業,常用的.NET下的OpenCV庫有Emgu CV和OpenCVSharp,
Emgu CV是.NET平臺下對OpenCV影像處理庫的封裝,也就是.NET版的OpenCV,由于OpenCV是用C和C++撰寫的,Emgu用C#對其進行封裝,允許用.Net語言來呼叫OpenCV函式,如C#、VB、VC++等,
OpenCvSharp 是一個OpenCV的.Net wrapper,應用最新的OpenCV庫開發,使用習慣比EmguCV更接近原始的OpenCV,有詳細的使用樣例供參考,該庫采用LGPL發行,對商業應用友好,使用OpenCvSharp,可用C#,VB.NET等語言實作多種流行的影像處理(image processing)與計算機視覺(computer vision)演算法,
本文將介紹利用Emgu CV進行影像處理濾波去噪的常用方法,
一、 中值濾波
Image image = Image.FromFile("xx.jpg"); Image<Bgr, byte> img = new Image<Bgr, byte>((Bitmap)image);//實體化一個三通道的OPENCV的影像物件 Int k=3;//濾波核,奇數 img = img.SmoothMedian(k);//按照指定的濾波核進行中值濾波 Bitmap bitmap= img.Bitmap;//輸出Bitmap格式的結果



二、 高斯濾波
Image image = Image.FromFile("xx.jpg");
Image<Bgr, byte> img = new Image<Bgr, byte>((Bitmap)image);//實體化一個三通道的OPENCV的影像物件
Int k=3;//濾波核,奇數
img = img. SmoothGaussian (k);//按照指定的濾波核進行高斯濾波
Bitmap bitmap= img.Bitmap;//輸出Bitmap格式的結果


三、 均值濾波
Image image = Image.FromFile("xx.jpg");
Image<Bgr, byte> img = new Image<Bgr, byte>((Bitmap)image);//實體化一個三通道的OPENCV的影像物件
Int k=3;//濾波核,奇數
img = img. SmoothBlur (k,k);//按照指定的濾波核進行均值濾波
Bitmap bitmap= img.Bitmap;//輸出Bitmap格式的結果


四、 方框濾波
Image image = Image.FromFile("xx.jpg");
Image<Bgr, byte> img = new Image<Bgr, byte>((Bitmap)image);//實體化一個三通道的OPENCV的影像物件
Int k=3;//濾波核,奇數
CvInvoke.BoxFilter(img, img, DepthType.Default, new Size(k, k), new Point(-1, -1));//按照指定的濾波核進行方框濾波
Bitmap bitmap= img.Bitmap;//輸出Bitmap格式的結果
五、 雙邊濾波
Image image = Image.FromFile("xx.jpg");
Image<Bgr, byte> img = new Image<Bgr, byte>((Bitmap)image);//實體化一個三通道的OPENCV的影像物件
Int k=3;//濾波核,奇數
CvInvoke.EdgePreservingFilter(img, img, EdgePreservingFilterFlag.NormconvFilter, k, 0.4f);;//按照指定的濾波核進行雙邊濾波
Bitmap bitmap= img.Bitmap;//輸出Bitmap格式的結果
---------------------------受字數限制,下一篇繼續------------------------------------------------------------------------------------------------------------------------------------------------------------
微信公眾號 
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/412950.html
標籤:其他
上一篇:BOM
