美文网首页
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