C# と OpenCV (7) フィルタリングの組み合わせ

フィルター:

平均フィルター

構築されたフィルター カーネルの平均値を取得し、それを中央の領域に埋めます。

スライディングウィンドウ技術を使用。

たとえば、3*3 フィルター カーネルでは、9 つ​​の値の合計を計算し、9 で割って平均を取得します。

Cv2.Blur(Src_Images, dstimage, new Size(3, 3));

 

メディアンフィルター

フィルター カーネル内のすべての数値の中央値を取得します。これは非線形計算です。

 

Cv2.MedianBlur(Src_Images, dstimage, 3);

 

 

ガウスフィルター

各画素は、自身の画素値とその周囲の画素の値を加重平均して求められ、中心になるほど重み係数が大きくなり、中心から離れるほど重み係数が小さくなる。このようにして、隣接するピクセルの割合を増やすことができ、ノイズを効果的に除去できます。

計算により中間値を取得し、それをガウス公式に当てはめます

Cv2.GaussianBlur(Src_Images, dstimage, new Size(3, 3), 1);

 

 

他にもいくつかのフィルタリングアルゴリズムがあります

            //快速图像边缘滤波算法
            Cv2.EdgePreservingFilter(src1, dd, EdgePreservingMethods.RecursFilter, 60, 0.44f);
            //高斯双边模糊 去除噪音的同时保持边缘的清晰锐利
            Cv2.BilateralFilter(src1, dd, 0, 100, 10, BorderTypes.Reflect101);
            //边缘保留滤波算法  均值迁移模糊
            Cv2.PyrMeanShiftFiltering(src1, dd, 15, 50);

 

 //快速图像边缘滤波算法
            Cv2.EdgePreservingFilter(src1, dd, EdgePreservingMethods.RecursFilter, 60, 0.44f);

 

  //高斯双边模糊 去除噪音的同时保持边缘的清晰锐利
            Cv2.BilateralFilter(src1, dd, 0, 100, 10, BorderTypes.Reflect101);

 

  //边缘保留滤波算法  均值迁移模糊
            Cv2.PyrMeanShiftFiltering(src1, dd, 15, 50);

 

おすすめ

転載: blog.csdn.net/weixin_43852823/article/details/127746733