Up | Example 01 - Calculate Area | Example 02 - Calculate mean value | Example 03 - Manipulate the results from two LineFinders | Example 04 - Dynamic threshold | Example 05 - Auto Exposure | Example 06 - DrawLine | Example 07 - Overlays | Example 08 - Python Objects | Example 09 - Timing | Example 10 - Image Averaging | Example 11 - Image Resampling | Example 12 - Constant Contrast | Example 13 - Serial Communication | Example 14 - Python results | Example 15 - Making a result string | Example 16 - Running tools from a script | Example 17 - Image Manipulation using Python Scripting | Example 18 - Calculating the median angle | Example 19 - Iterating objects located by a blob | Example 20 - Resampling using non-linear calibration | Example 21 - Custom Scorpion Python extension | Example 22 - Accessing Image Pixels | Example 23 - Implementing a tcp/ip Socket Server | Example 24 - Setting ExternalReference from calculated four points | Example 25 - Rotating a reference around in a circle | Example 26 - Grabbing an image from an MOXA Video IP Server | Example 27 - Toolbox Switch | Example 28 - Color Matcher Iteration | Example 29 - Audio Notification | Example 30 - Windows MessageBox | Example 31 -  Client to tcp Socket Server | Example 32 -  Read / Write External Data from / to file | Example 33 - Changing a tool's ROI | Example 34 - Histogram Equalization | Example 35 - Robust Adam 6060 scripts | Example 36 - Bubblesort | Example 37 - Element Statistics | Example 38 - Saving 3D Image | Example 39 - Disabling Zoom in Image Windows | Example 40 - Filtering timeseries | Example 41 - Scorpion Watchdog keep system running | Example 42 - Binary Search | Example 43 - Creating an ordered pointcloud | Example 44 - UDP Socket Communication

 

  

 
Example 37 - Element Statistics

The python class is designed to calculate the Mean and the Standard Deviation of a collection of elements.

def ElementStatistics():
  import math

  class ElementStat:
    def __init__(self):
      self.Reset()

    def Add(self,x):
      print ' x ', x
      self.n = self.n +1
      delta = x - self.mean
      self.mean = self.mean + delta / self.n
      self.S = self.S + delta*(x - self.mean)

    def N(self):
      return self.n

    def Mean(self):
      return self.mean

    def Variance(self):
      return self.S / (self.n - 1)

    def Std(self):
      return math.sqrt(self.Variance())

    def Reset(self):
      self.n = 0
      self.mean = 0
      self.S = 0

  return ElementStat()
Example 1: Using Element Stat
obp = GetTool('obp')
mref = GetTool('mref')
img = GetImageMatr('1')
points = GetResultValue('polygons.Polygon[1]')
statX = ElementStatistics()
statY = ElementStatistics()
statZ = ElementStatistics()
for pos in points:
  mref.setConfigValue('OrigoX',pos[0],0)
  mref.setConfigValue('OrigoY',pos[1])
  mref.execute(img)
  obp.execute(img)
  x = obp.getFloatValue('Position_x')
  y = obp.getFloatValue('Position_y')
  z = obp.getFloatValue('Position_z')
  dev = obp.getFloatValue('Deviation')
  if 0.0 < dev < 1.0 :
    statX.Add(x)
    statY.Add(y)
    statZ.Add(z)
DrawMarker3D('1-3DRef',statX.Mean(),statY.Mean(),statZ.Mean(),'Red',6)
DrawText3D('1-3DRef',statX.Mean(),statY.Mean(),statZ.Mean(),' %.0f,%.0f,%.0f' % (statZ.Mean(),statZ.Std(),statZ.N()), 'Red',16,'Arial')

ore information: http://en.wikipedia.org/wiki/Standard_deviation

 

Scorpion Vision Version XII : Build 646 - Date: 20170225
Scorpion Vision Software® is a registered trademark of Tordivel AS.
Copyright © 2000 - 2017 Tordivel AS.