引用———“关于图像分割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


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

  1. 独家 | R语言中K邻近算法的初学者指南:从菜鸟到大神(附代码&链接)

    作者:Leihua Ye, UC Santa Barbara 翻译:陈超 校对:冯羽 本文约2300字,建议阅读10分钟 本文介绍了一种针对初学者的K临近算法在R语言中的实现方法. 本文呈现了一种在R ...

  2. k折交叉验证优缺点_R语言中K邻近算法的初学者指南:从菜鸟到大神(附代码&链接)...

    作者:Leihua Ye, UC Santa Barbara 翻译:陈超 校对:冯羽 本文约2300字,建议阅读10分钟 本文介绍了一种针对初学者的K临近算法在R语言中的实现方法. 本文呈现了一种在R ...

  3. 判断数组相同数c语言_单片机常用的14个C语言算法,看过的都成了大神!

    算法(Algorithm):计算机解题的基本思想方法和步骤. C语言入门视频教程_9天精通Linux C语言 - 创客学院​www.makeru.com.cn 算法的描述:是对要解决一个问题或要完成一 ...

  4. OpenCV图像分割Grabcut算法

    前言 1.OpenCV图像分割Grabcut算法主要功能是分割和抠图,就是把框着的目标抠出来,比如要分割出一个证件照的人的图像,只需要在目标外面画一个框,把目标框住,它就可以完成良好的分割. 2.算法 ...

  5. 【图像处理】——Python图像分割边缘检测算法之二阶梯度算子(laplace、log、dog算子)

    目录 一.二阶算子简介 二.laplace(拉普拉斯算子) 1.什么是拉普拉斯算子 (1)连续二维函数的二阶导 (2)离散二维函数的二阶导数 2.常用算子模块及代码 3.结果 三.log算子 1.什么 ...

  6. 【图像处理】——Python图像分割边缘检测算法之一阶梯度算子(Roberts、Prewitt、Sobel、 Kirsch、Canny算子)

    目录 前言 一.边缘检测算法 1.一阶算子 2.二阶算子 二.一阶算子 原图像lena 1.Roberts算子 不同方向的算子模板 梯度的计算 系统代码: 自定义函数代码 结果 2.Prewitt 不 ...

  7. 数字图像处理:图像分割 人工智能算法在图像处理中的应用

    人工智能算法在图像处理中的应用 人工智能算法包括遗传算法.蚁群算法.模拟退火算法和粒子群算法等,在图像边缘检测.图像分割.图像识别.图像匹配.图像分类等领域有广泛应用.本文首先介绍常用人工智能算法的的 ...

  8. 传统图像分割——分水岭算法(watershed)

    传统图像分割--分水岭算法(watershed) 文章目录 传统图像分割--分水岭算法(watershed) 前言 一.什么是分水岭算法? 二.经典的分水岭求解算法 1.定义 2.算法流程 总结 前言 ...

  9. 传统图像分割——区域合并算法(region merging)

    传统图像分割--区域合并算法(region merging) 前言 本篇文章主要梳理基于区域算法的原理.首先先介绍区域增长算法:然后在此基础上介绍区域合并算法:之后再介绍区域分割合并算法,最后介绍20 ...

  10. CUDA精进之路(五):图像处理——OTSU二值算法(最大类间方差法、大津法)

    引言 最近在做医疗设备相关的项目,故在项目中大量用到了各类图像分割的算法,为了在图像中分割出特定目标,用到的算法可以有很多,比如阈值分割,多通道分割,边缘分割以及一些前沿的组合分割.而对大多数图像来说 ...

最新文章

  1. 四叶草社交平台——十天冲刺(5)
  2. php 公钥格式转换,如何把OpenSSH公钥转换成OpenSSL格式
  3. hdmi tv 信息 的edid_开发HDMI你需要了解什么
  4. windows2008开机占用多少内存_如何提升电脑开机速度?
  5. sqlserver 当月、 时间_sqlserver 获取时间年月日时分秒
  6. html登陆滑动验证,js实现登录时的滑动验证【原创】
  7. Activity 过渡动画 — 让切换更加炫酷
  8. java实现计算器_java实现计算器功能
  9. Mac谷歌浏览器chromedriver驱动安装教程,实现浏览器自动化
  10. html中小星星打分,折腾:2颗星星+纯CSS实现星星评分交互效果
  11. [CSP2020]儒略日
  12. python为循环线条增加颜色_python – Matplotlib:如何将线条颜色设置为橙色,并指定线条标记?...
  13. A4纸和一寸照在屏幕的尺寸计算
  14. Idea创建JavaEE项目
  15. PythonNOJ习题前二十道(西北工业大学cpSkill实验平台)
  16. 王某与石某的分歧卡卡罗特
  17. CONVERT转换函数
  18. 按钮(Button, ImageButton)
  19. ESP32-CAM:机器视觉视觉摄像头
  20. 一些开源的剪切MP3的软件

热门文章

  1. 使用arcpy遇到的那些坑(二)
  2. 028_adblock
  3. adb 重启应用程序
  4. UDS协议-代码完整性测试
  5. 咸阳机场地下停车场如何收费,咸阳机场停车收费价格
  6. C++单例模式--线程安全
  7. 《2018华为92家核心供应商及其供应产品》
  8. 供应链SCOR模型搭建/改进
  9. vue从s3(AWS)中获取图片并展示
  10. mysql授权replication_MySQL创建用户并授权REPLICATION CLIENT和REPLICATION SLAVE