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 34 - Histogram Equalization
This example calculates the histogram from an Image and performs Histogram Equalization on the same image.
def HistEqualize(image,report=0):

  im  =GetImageMatr(image)
  rows,cols=im.dim()
  if report: print image,rows,cols


  hist=range(0,256)
  for i in range(0,256): hist[i]=0
  for i in range(0,rows*cols): hist[ im[i] ]+=1

  nump  = rows*cols
  alpha = 255.0/nump

  def printhist(hist):
     max=0
     for it in hist:
         if it>max:max=it
     for i in range(0,len(hist)):
        print '%03d %03d' % (i,hist[i]),'*' * int((hist[i]/(max*1.0)) * 100)

  if report:
    printhist(hist)
    print '='*30

  cumfreq   =range(0,256)
  cumfreq[0]=hist[0]
  cum       =hist[0]
  cumfreq[0]=cum
  for i in range(1,256):
    cum+=hist[i]
    cumfreq[i]=cum

  for i in range(0,rows*cols):
      v= int(cumfreq[im[i]]*alpha)
      if v>255:v=255
      im[i] = v
  if report:
     for i in range(0,256): hist[i]=0
     for i in range(0,rows*cols): hist[ im[i] ]+=1
     printhist(hist)

  SetImageMatr(image,im)

 

 
 

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