"关于图像分割Snake算法(c#)的一些不解之惑,望大神指点"的拙见


引用———“关于图像分割Snake算法(c#)的一些不解之惑,望大神指点:我手头有一个别人的代码,是winform程序,其中包含了两个类,分别是FormSnake.cs和SnakeSharp.cs在FormSnake类中的鼠标事件里,用了一个动态数组presetContour来记录鼠标每次每次停留位置的坐标,在SnakeSarp中也定义一个数组snakePoints,我的问题是:presetContour里面是肯定有数据的,而snakePoints是怎么得到这些数据的。我把两个类的代码都放上来,请明白的前辈指点一下。

1、在FormSnake.cs中

private void splitContainer1_Panel1_MouseUp(object sender, MouseEventArgs e)
        {

            if (isMouseDown)
            {

                isDrawingContour = false;
                isMouseDown = false;
                buttonSetContour.Enabled = true;
                buttonStart.Enabled = true;
                buttonStep.Enabled = true; 
                graphics = Graphics.FromImage(curImage);
                Pen p = new Pen(Color.Green);
                if (presetContour.Count > 1)
                {
                    graphics.DrawLine(p, presetContour[0], presetContour[presetContour.Count - 1]);
                }
                graphics.Save();
                mainContainer.Panel1.Refresh();
                textBoxInfo.AppendText("\r\n边界设定完毕,共设定" + presetContour.Count + "个点。");
                if (snakeSharp != null)
                {
                    snakeSharp.SetCurcePoints(presetContour);//传递设置的边界点
                }
            }
        }

2、在SnakeSharp.cs中

public void SetCurcePoints(List<Point> pos)
        {

            //定义参数
            snakePoints = new CurvePoint[pos.Count];
            for (int i = 0; i < pos.Count;i++ )
            {
                snakePoints[i] = new CurvePoint(pos[i]);
            }
            
            threshold_curvature = 0.2;//曲率阈值
            threshold_grad = 100;//梯度阈值
            pointsMovedThreshold = SnakePointsCount / 10;
            
        }

3、

presetCountour中的内容即可传递到snakePoints[ ]里

4、

具体程序见于https://yq.aliyun.com/wenzhang/show_1680


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值