EmguCv滤波

中值滤波

//中值滤波
        private void btn_mediaBlur_Click(object sender, EventArgs e)
        {
            int num = Convert.ToInt32(numForMediaBlur.Value);
            
            //第三个参数必须为奇数
            if ((num % 2) != 0 && ib_original.Image != null)
            {
                Bitmap bmp = ib_original.Image.Bitmap;
                Mat src = new Image<Bgr, byte>(bmp).Mat;
                Mat dst = new Mat();
                CvInvoke.MedianBlur(src, dst, Convert.ToInt32(numForMediaBlur.Value));
                ib_result.Image = dst;
            }
            else
            {
                MessageBox.Show("参数只能为奇数");
            }
        }

均值滤波

//均值滤波
        private void btn_blur_Click(object sender, EventArgs e)
        {
            if (ib_original.Image != null)
            {
                Bitmap bmp = ib_original.Image.Bitmap;
                Mat src = new Image<Bgr, byte>(bmp).Mat;
                Mat dst = new Mat();
                CvInvoke.Blur(src, dst, new Size(5, 5), new Point(-1, -1));
                ib_result.Image = dst;
            }
            
        }

高斯滤波

//高斯滤波
        private void btn_gaussianBlur_Click(object sender, EventArgs e)
        {
            
            if (ib_original.Image != null)
            {
                Bitmap bmp = ib_original.Image.Bitmap;
                Mat src = new Image<Bgr, byte>(bmp).Mat;
                Mat dst = new Mat();
                CvInvoke.GaussianBlur(src, dst, new Size(5, 5), 4);
                ib_result.Image = dst;
            }
        }

双边滤波

//双边滤波
        private void btn_bilateralFilter_Click(object sender, EventArgs e)
        {
            
            if (ib_original.Image != null)
            {
                Bitmap bmp = ib_original.Image.Bitmap;
                Mat src = new Image<Bgr, byte>(bmp).Mat;
                Mat dst = new Mat();
                CvInvoke.BilateralFilter(src, dst, 10, 30, 15);
                ib_result.Image = dst;
            }
        }

 方框滤波

//方框滤波
        private void btn_boxFilter_Click(object sender, EventArgs e)
        {
            if (ib_original.Image != null)
            {
                Bitmap bmp = ib_original.Image.Bitmap;
                Mat src = new Image<Bgr, byte>(bmp).Mat;
                Mat dst = new Mat();
                CvInvoke.BoxFilter(src, dst, Emgu.CV.CvEnum.DepthType.Cv8U, new Size(5, 5), new Point(-1, -1));
                ib_result.Image = dst;
            }
        }

猜你喜欢

转载自blog.csdn.net/xjjatdna/article/details/85392155