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 22 - Accessing Image Pixels
From Python you can manipulate the pixels of an image.

Example 1: Retrieve pixel value of row=417 and col=459

import arr
img = GetImageMatr('Image') # on RGB images use Image.I to retrieve intensity plane
ROWS,COLS = img.dim()
print 'image size ',ROWS,COLS

row = 417 # row is x when measuring with pixels as reference system
col = 459 # column is y
pixel = img[row*COLS+col]

print ' row, column, value ',row,col,pixel

ScorpionImage class simplifies image pixel access

def CreateScorpionImage(rows,cols):

  import arr
  
  class ScorpionImage:
    def __init__(self,rows=0,cols=0):
      if rows * cols > 0:
        self.im=arr.uint8Mat(rows,cols)

    # return number rows in image
    def Rows(self):
       R,C = self.im.dim()
       return R

    # return number columns in image
    def Columns(self):
       R,C = self.im.dim()
       return C

    # transfers image to scorpion image by name
    def SetImageMatr(self,name):
      SetImageMatr(name,self.im)

    # reads scorpion image to class
    def GetImageMatr(self,name):
      self.im = GetImageMatr(name)

    # resets image to zero
    def Reset(self):
      arr.setArr(self.im,0)

    # set pixel of image to value
    def Set(self,row,col,value):
      R,C=self.im.dim()
      self.im[row*C+col]=value

    # get image pixel value
    def Get(self,row,col):
      R,C=self.im.dim()
      return self.im[row*C+col]

  return ScorpionImage(rows,cols)

Example 2: Manipulate a Scorpion Image using ScorpionImage instance

image = CreateScorpionImage(0,0)
image.GetImageMatr('Image') # on RGB images use Image.I to retrieve intensity plane
for i0 in range(40):
  p = image.Get(i0*10,i0*10)
  p += 100
  if p>255: p=255
    image.Set(i0*10,i0*10,p)

image.SetImageMatr('Image')
 

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