[英]How to Structure Lists
我正在研究一个vb.net自动聚焦程序并且已经完成了图像处理部分,基本上我做了一些边缘检测,转换为灰度,然后测量标准偏差来计算出最“焦点”的点。图片。
我用很多图像做了这个,它几乎是正态分布,现在我想开始将它与我的显微镜和步进电机结合起来。
这个概念是我将在步进电机上移动上下限,并通过实时视图测量上述内容,将值记录在列表中。 在我的例子中,我要记录的两件事是位置和双标准偏差值。
我想知道记录这些的最佳方法是什么,它应该被记录为类型列表,还是字典或其他方法?
一旦我记录了所有这些值,我想通过这些值来对它们进行一些简单的分析,所以如果是这样的话
那么我怎样才能确定平均值,最小值,最大值等?
我存储信息的第一次尝试是在一个打字列表中,我基本上完成了以下操作;
Public ZPositions As New List(Of Zfocus)
Public Class Zfocus
Public Position As Integer
Public GreyStDev As Double
End Class
第二种方式是使用字典;
Public ZPosition As New Dictionary(Of Integer, Double)
但是在这两种情况下,我不确定如何拉出单个最大位置值(例如位置整数),或者从字典中拉出位置值(整数),其中(种类)与最佳自动对焦位置相对应。
第三个额外的奖励,是能够提取超过特定值的任何位置,这可能与在其中有一些焦点信息以进行焦点堆叠有关吗?
非常感谢
非常感谢jmcilhinney,这解决了我的问题并且有所作为! 使用强类型列表(ZFocus列表)然后我可以执行以下操作;
MaxPosition = ZPositions.First(Function(zp1) zp1.GreyStDev = ZPositions.Max(Function(zp2) zp2.GreyStDev))
这允许设置一个自动对焦程序,循环通过许多图像(作为测试),存储位置(例如在这种情况下的图像编号)和强度边缘信息,然后在最后拉出最强的图像在我的情况下形成最佳自动对焦点的强度信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.