C# 实现gabor滤波

运行结果

        string ImagePath;
        private void Button1_Click(object sender, EventArgs e)
        {
   
            OpenFileDialog openfile = new OpenFileDialog();

            if (openfile.ShowDialog() == DialogResult.OK)
            {
   
                ImagePath = openfile.FileName;
                pictureBox1.ImageLocation=ImagePath;
            }
        }

        private void Button2_Click(object sender, EventArgs e)
        {
   
            Image<Gray, byte> src = new Image<Gray, byte>(ImagePath); ;
            Image<Gray, byte> dst1 = new Image<Gray, byte>(src.Width, src.Height);
            Image<Gray, byte> dst2 = new Image<Gray, byte>(src.Width, src.Height);
            Image<Gray, byte> dst3 = new Image<Gray, byte>(src.Width, src.Height);
            GaborFilter gf = new GaborFilter();
            //0度
            Bitmap bm1 = gf.ProcessFilter(UnmanagedImage.FromManagedImage(src.Bitmap), dst1.Bitmap, 3, 5, 0, 0.3, 2, 0.5).ToManagedImage();//gabor滤波
            CvInvoke.Threshold(new Image<Gray, byte>(bm1), dst1, 150, 255, ThresholdType.Binary);
            //45度
            Bitmap bm2 = gf.ProcessFilter(UnmanagedImage.FromManagedImage(src.Bitmap), dst2.Bitmap, 3, 5, Math.PI / 4, 0.3, 2, 0.5).ToManagedImage();//gabor滤波
            CvInvoke.Threshold(new Image<Gray, byte>(bm2), dst2, 150, 255, ThresholdType.Binary);
            //135度
            Bitmap bm3 = gf.ProcessFilter(UnmanagedImage.FromManagedImage(src.Bitmap), dst3.Bitmap, 3, 5, 135 * Math.PI / 180, 0.3, 2, 0.5).ToManagedImage();//gabor滤波
            CvInvoke.Threshold(new Image<Gray, byte>(bm3), dst3, 150, 255, ThresholdType.Binary);

            src.Dispose();
            bm1.Dispose();
            bm2.Dispose();
            bm3.Dispose();
            pictureBox2.Image = (dst1 * 255).Bitmap;
            pictureBox3.Image = (dst2 * 255).Bitmap;
            pictureBox4.Image = (dst3 * 255).Bitmap;
        }


using Accord.Math;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VisioForge.Shared.AForge.Imaging;
using VisioForge.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值