美文网首页
C#:生成6个圆环

C#:生成6个圆环

作者: 大龙10 | 来源:发表于2023-02-01 07:15 被阅读0次

一、生成6个圆环

生成6个半径 50<R<80 的圆环 ,圆心坐标(200,500)、(500,500)

        private void uiButton1_Click(object sender, EventArgs e)
        {
            Scalar s = new Scalar(155, 155, 155);//创建一个颜色对象
            OpenCvSharp.Scalar scalar = new OpenCvSharp.Scalar(0, 0,0);
            Mat mm = new Mat(1000, 2000, MatType.CV_8UC3, s);
            for(int i=0;i<6;i++)
            { Cv2.Circle(mm, 200+i*300, 500, 50, scalar, 30); }
            picShowOri.Image = mm.ToBitmap();
            src_img = new Mat();
            mm.CopyTo(src_img);

        }

二、霍夫圆检测参数

使用霍夫变换查找灰度图像中的圆。参数:

  • 1:输入参数: 8位、单通道、灰度输入图像
  • 2:实现方法:目前,唯一的实现方法是HoughCirclesMethod.Gradient
  • 3: dp :累加器分辨率与图像分辨率的反比。默认=1
  • 4:minDist: 检测到的圆的中心之间的最小距离。(最短距离-可以分辨是两个圆的,否则认为是同心圆
  • 5:param1: 第一个方法特定的参数。[默认值是100] canny边缘检测阈值
  • 6:param2: 第二个方法特定于参数。[默认值是100] 中心点累加器阈值
  • 7:minRadius: 候选圆心最小半径
  • 8:maxRadius: 候选圆心最大半径

二、识别圆

  • 识别 30<半径<200 ,识别出内环的圆。

CircleSegment[] cs = Cv2.HoughCircles(m2, HoughMethods.Gradient, 1, 80, 60, 20, 30, 200);

  • 识别 50<半径<200 ,识别出外环的圆。

CircleSegment[] cs = Cv2.HoughCircles(m2, HoughMethods.Gradient, 1, 80, 60, 20, 50, 200);

  • 调整HoughCircles函数,筛选出所需的圆。

相关文章

网友评论

      本文标题:C#:生成6个圆环

      本文链接:https://www.haomeiwen.com/subject/ihvbhdtx.html