c# OpenCvSharp透视矫正参数调整器

 透视矫正不够智能化,每次都要进行局部参数调整,不便于程序使用,程序流程还是那几个步骤;

1、读取图像、灰度化

2、高斯滤波

3、二值化

4、边缘检测

灰度化图

上个图看看经过调整透视矫正边缘检测结果我还是挺满意的

发现一个新问题获取最大面积的四个点有两个点重复在一个位置

一、读取图像、灰度化

 固定化格式按部就班

 private void button1_Click(object sender, EventArgs e)
 {
     OpenFileDialog dialog = new OpenFileDialog();
     dialog.Multiselect = false;//该值确定是否可以选择多个文件
     dialog.Title = "请选择文件夹";
     dialog.Filter = "所有文件(*.*)|*.*";
     if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
     {
        // 1、读取图像、灰度化
         string file = dialog.FileName;
         Mat image = Cv2.ImRead(file, ImreadModes.Color);
         Mat src_gray = new Mat();
         Cv2.CvtColor(image, src_gray, ColorConversionCodes.BGR2GRAY); // 转换为灰度图像
 }

 二,高斯滤波

高斯模糊容易找到最大边界进行校正具体参数说明搜索一堆答案不在描述了

/// <summary>
/// 2、高斯滤波
/// </summary>
private void GaussianBlur()
{
    Cv2.GaussianBlur(src_img, dst, new OpenCvSharp.Size(gussX, gussY), gussPX, gussPY);   //高斯模糊
    pictureBox1.Image = dst.ToBitmap();
    pictureBox1.Refresh();
}

 三、二值化

二值化区分索要区域,便于边缘检测

/// <summary>
/// 二值化
/// </summary>
private void Threshold()
{
    if (cmBoxThre.Text == "")
    {
        return;
    }
    ThresholdTypes aaa = (ThresholdTypes)Enum.Parse(typeof(ThresholdTypes), cmBoxThre.Text);
    try
    {
        Cv2.Threshold(src_img, dst, tkBarThresh.Value, tkBarMaxValue.Value, aaa);//阈值二值化
        picBoxShowDel.Image = dst.ToBitmap();
    }
    catch (Exception e)
    {
        Console.WriteLine(e);
    }

}

四、边缘检测 

 /// <summary>
 /// 边缘检测Canny
 /// </summary>
 private void Canny()
 {
     int hole = 0;
     if (!int.TryParse(txtBoxCannyHole.Text, out hole))
     {
         return;
     }
     try
     {
         Cv2.Canny(src_img, dst, tkBarCannyMin.Value, tkBarCannyMax.Value, hole, rbBtnTrue.Checked);  

         picBoxShowDel.Image = dst.ToBitmap();
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
     }
 }

  c# OpenCV相关文章目录

 c# OpenCvSharp安装(一)
c# OpenCvSharp读取、显示和写入图像(二)
c# OpenCvSharp图像裁剪、调整大小、旋转、透视(三)
c# OpenCvSharp基本绘画(直线、椭圆、矩形、圆、多边形、文本)(四)
c# OpenCvSharp 检测(斑点检测、边缘检测、轮廓检测)(五)
c# OpenCvSharp 轮廓绘制六步骤你学会了吗(六)
c# OpenCvSharp 目标检测五个步骤(又学会了)(七)
c# OpenCvSharp透视矫正六步实现透视矫正(八
c# OpenCvSharp Cv2.Threshold()和Cv2.AdaptiveThreshold参数说明
c# OpenCvSharp透视矫正参数调整器

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值