Generated from LibVision.c with ROBODoc v3.2.2 on Tue Dec 05 11:08:26 2000

TABLE OF CONTENTS

  1. LibVision/VIS_RGB2Hue
  2. LibVision/VIS_RGB2Sat
  3. LibVision/VIS_RGB2Int
  4. LibVision/VIS_FillHueTable
  5. LibVision/VIS_FillRGBSpace
  6. LibVision/VIS_FillWhiteClass
  7. LibVision/VIS_ReduceNoise
  8. LibVision/VIS_ReduceNoisef
  9. LibVision/VIS_ReduceNoise2
  10. LibVision/VIS_ReduceNoise2f
  11. LibVision/VIS_FindLimits
  12. LibVision/VIS_FindClass
  13. LibVision/VIS_FindClasses
  14. LibVision/VIS_MedianHue
  15. LibVision/VIS_Init
  16. LibVision/VIS_ColClear
  17. LibVision/VIS_ColInit
  18. LibVision/VIS_ColFindOne
  19. LibVision/VIS_ColFind
  20. LibVision/VIS_CamCal
  21. LibVision/VIS_ModifyCam
  22. LibVision/VIS_ModifyAlgo
  23. LibVision/VIS_InitDistance
  24. LibVision/VIS_GetPosition
  25. LibVision/VIS_InitBwimg
  26. LibVision/VIS_ComputeBW
  27. LibVision/VIS_DrawLimits
  28. LibVision/VIS_DrawBorder
  29. LibVision/VIS_MarkObject
  30. LibVision/VIS_ErrorDisplay
  31. LibVision/VIS_InitShowProgress
  32. LibVision/VIS_ShowProgress
  33. LibVision/VIS_ShowOffset
  34. LibVision/VIS_InitCam
  35. LibVision/VIS_AutobrightnessDelay
  36. LibVision/VIS_TeamRobot

LibVision/VIS_RGB2Hue

SYNOPSIS
   BYTE VIS_RGB2Hue(BYTE R, BYTE G, BYTE B)  
DESCRIPTION
   Converts (R,G,B) triplet into Hue value between 0 and 252.
SEE ALSO
   VIS_RGB2Sat VIS_RGB2Int

 Thomas Braunl, UWA 1998.

LibVision/VIS_RGB2Sat

SYNOPSIS
   BYTE VIS_RGB2Sat(int R, int G, int B)  
DESCRIPTION
   Converts (R,G,B) triplet into Saturation value between 0 and 255.
SEE ALSO
   VIS_RGB2Hue VIS_RGB2Int

LibVision/VIS_RGB2Int

SYNOPSIS
   BYTE VIS_RGB2Int(int R, int G, int B)  
DESCRIPTION
   Converts (R,G,B) triplet into Intensity value between 0 and 255.
SEE ALSO
   VIS_RGB2Hue VIS_RGB2Sat

LibVision/VIS_FillHueTable

SYNOPSIS
   void VIS_FillHueTable(void)  
DESCRIPTION
   Fills the RGB to Hue conversion table for faster conversion. Sets the HueTableOK flag to 1.
   The RGB->Hue conversion table is a global variable.
SEE ALSO
   VIS_FillRGBSpace VIS_FillWhiteClass

LibVision/VIS_FillRGBSpace

SYNOPSIS
   void VIS_FillRGBSpace(BYTE HueMin, BYTE HueMax, BYTE Saturation, 
                         BYTE ColourClass, VIS_RGBSpace *RGBSpace)  
DESCRIPTION
   Fills the RGB space cube with a colour class, using a saturation threshold.
   The saturation threshold can be the default defined one (VIS_SAT_THRES).
   'ColourClass' is defined by the user and is the reference to the colour-class.
SEE ALSO
   VIS_ColInit VIS_ColClear VIS_ColFind VIS_FillHueTable VIS_FillWhiteClass

LibVision/VIS_FillWhiteClass

SYNOPSIS
   void VIS_FillWhiteClass(int SatMin, int SatMax, BYTE IntMin, BYTE IntMax,
                           BYTE ColourClass, VIS_RGBSpace *RGBSpace)  
DESCRIPTION
   Fills a white class in the RGB space.
   'SatMin' and 'SatMax' define the saturation range, 'SatMax' may be VIS_SAT_THRES for instance.
   The shade between black and white is defined by the intensity range (IntMin, IntMax).
   'ColourClass' is defined by the user and is the reference to the colour-class.
SEE ALSO
   VIS_ColInit VIS_ColClear VIS_ColFind VIS_FillHueTable

LibVision/VIS_ReduceNoise

SYNOPSIS
   int VIS_ReduceNoise(VIS_Process *Process, int len)  
DESCRIPTION
   Denoise every pixels with a depth of 'len'.
SEE ALSO
   VIS_ReduceNoisef VIS_ReduceNoise2 VIS_ReduceNoise2f

LibVision/VIS_ReduceNoisef

SYNOPSIS
   int VIS_ReduceNoisef(VIS_Process *Process)  
DESCRIPTION
   Denoise 'f' every pixels using the fast loop (i.e. one pixel around).
SEE ALSO
   VIS_ReduceNoise VIS_ReduceNoise2 VIS_ReduceNoise2f

LibVision/VIS_ReduceNoise2

SYNOPSIS
   int VIS_ReduceNoise2(VIS_Process *Process, int len)  
DESCRIPTION
   Denoise '2' i.e. every two pixels.
SEE ALSO
   VIS_ReduceNoise VIS_ReduceNoisef VIS_ReduceNoise2f

LibVision/VIS_ReduceNoise2f

SYNOPSIS
   int VIS_ReduceNoise2f(VIS_Process *Process)  
DESCRIPTION
   Denoise '2f' i.e. every two pixels and fast (i.e. one pixel around).
SEE ALSO
   VIS_ReduceNoise VIS_ReduceNoisef VIS_ReduceNoise2

LibVision/VIS_FindLimits

SYNOPSIS
   void VIS_FindLimits(int* pTop, int* pBot, int* pRight, int* pLeft, VIS_Object *Object)  
DESCRIPTION
   Find the limits of the segmented objects.
SEE ALSO
   VIS_FindLimits VIS_FindClass VIS_FindClasses VIS_ColFindOne VIS_ColFind

LibVision/VIS_FindClass

SYNOPSIS
   void VIS_FindClass(colimage *Pic, VIS_RGBSpace *RGBSpace, VIS_Object *Object, int ColourClass)
DESCRIPTION
   Build a binary map for a specific colour class.
   Input  : a colimage, the RGBSpace to use, and the ColourClass to look for.
   Output : a VIS_Object structure containing the object informations. 
SEE ALSO
   VIS_FindLimits VIS_ColFindOne VIS_ColFind VIS_FindClass VIS_FindClasses

LibVision/VIS_FindClasses

SYNOPSIS
   void VIS_FindClasses(BYTE number, colimage *Pic, VIS_RGBSpace *RGBSpace, VIS_Process *Process,
                          BYTE *ColourList)
DESCRIPTION
   Build a binary map for several colour classes.
   'Process' and 'ColourClass' are arrays having 'number' elements.
SEE ALSO
   VIS_FindLimits VIS_ColFindOne VIS_ColFind VIS_FindClass

LibVision/VIS_MedianHue

SYNOPSIS
   VIS_DefineHue VIS_MedianHue(colimage *Pic, int size)
DESCRIPTION
   Finds median hue and the hue range out of the middle part of the picture.
   'size' can not be more than 10.
   Returns a VIS_DefineHue structure containing the median Hue (VIS_DefineHue.Hue) and 
 the Hue range (VIS_DefineHue.Range).
   Both structure elements are set to -1 if an error occured.
SEE ALSO


LibVision/VIS_Init

SYNOPSIS
   void VIS_Init(void)
DESCRIPTION
   Fills the hue conversion table and initialise the algorithm and camera offset defaults.
SEE ALSO


LibVision/VIS_ColClear

SYNOPSIS
   void VIS_ColClear(VIS_RGBSpace *RGBSpace)
DESCRIPTION
   Clears the RGB space: fills it with the VIS_NONE value.
SEE ALSO
   VIS_ColInit VIS_ColFind

LibVision/VIS_ColInit

SYNOPSIS
   void VIS_ColInit(VIS_HueTable *HueTable, VIS_RGBSpace *RGBSpace, int ColourClass)
DESCRIPTION
   Initialise a new colour class.
SEE ALSO
   VIS_ColClear VIS_ColFind

LibVision/VIS_ColFindOne

SYNOPSIS
   void VIS_ColFindOne(colimage *Pic, VIS_RGBSpace *RGBSpace, VIS_Object *Object, BYTE ColourClass)
DESCRIPTION
   Finds the specified colour class.
   Returns the ColourClass found : either ColourClass, either VIS_NONE.
SEE ALSO
   VIS_ColInit VIS_ColClear VIS_ColFind

LibVision/VIS_ColFind

SYNOPSIS
   int VIS_ColFind(int number, colimage *Pic, VIS_RGBSpace *RGBSpace, 
                   VIS_Object *Object, BYTE *ColourList)
DESCRIPTION
   Finds several colour classes pur in a list.
   Returns -1 if 'number' is bigger than the maximum number of classes, 0 for no errors.
SEE ALSO
   VIS_ColInit VIS_ColClear VIS_ColFindOne

LibVision/VIS_CamCal

SYNOPSIS
   void VIS_CamCal(VIS_RGBSpace *RGBSpace, BYTE ColourClass)
DESCRIPTION
   Camera angle offset
SEE ALSO
   

LibVision/VIS_ModifyCam

SYNOPSIS
   void VIS_ModifyCam(VIS_CamOffset *NewCam)
DESCRIPTION
   Modify camera offset values.
   Input  : a new 'VIS_CamOffset' structure.
            'VIS_CamOffset' is 5 values : angle and beta as floats
                                          alpha as BYTE
                                          height and lenght as int 
   Output : 0 for no errors, 1 is the NewCam is not valid.
SEE ALSO
   VIS_ModifyAlgo

LibVision/VIS_ModifyAlgo

SYNOPSIS
   void VIS_ModifyAlgo(VIS_Algo *NewAlgo)
DESCRIPTION
   Modify algorithm values.
   Input  : a new 'VIS_algo' structure.
            'VIS_Algo' is 4 integers : depth, fast, step and loop (modified automatically).
            Program is checking error in 'VIS_Algo' values, display them and return an error code.
            If an error occurs, no changes are made.
   Output : an error code : ==0 -> no errors; >0 -> an error occured.
SEE ALSO
   VIS_ModifyCam

LibVision/VIS_InitDistance

SYNOPSIS
   BYTE VIS_InitDistance(void)
DESCRIPTION
   Check the CamInfo and initialise distances lookup tables.
   Output : returns 0 if VIS_struct is set up properly, >0 if not or if beta angle not set up.
SEE ALSO
   VIS_GetPosition()

LibVision/VIS_GetPosition

SYNOPSIS
   int VIS_GetPosition(VIS_Object *Object, VIS_Distance *ObjDist)
DESCRIPTION
   Returns the distance of the ball by looking into the lookup tables.
   A VIS_distance struct is made of 3 integers : d_row, d_col and dist.
   Where dist is the direct distance between the robot and the ball,
         (d_row,d_col) are the relative coordinates of the ball compared to the robot position,
   So that dist^2=d_row^2+d_col^2.
   d_row is the depth of the ball compared to the robot position,
   d_col is the side distance of the ball compared to the robot.
   Input  : an object structure (VIS_Object) and a VIS_Distance result structure.
   Output : 0 on success, -1 if distance table is not initialised.
SEE ALSO
   VIS_Init_distance()

LibVision/VIS_InitBwimg

SYNOPSIS
   void VIS_InitBwimg(BYTE *bwimg)
DESCRIPTION
   BW LCD picture initialisation.
   Input  : 'Picture' structure.
   Output : 0 no errors, -1 NULL bwimg pointer.
SEE ALSO
   VIS_ComputeBW VIS_DrawLimits

LibVision/VIS_ComputeBW

SYNOPSIS
   void VIS_ComputeBW(BYTE *bwimg, BYTE *temp)
DESCRIPTION
   Get a 2D binary array and make a linear BW array for LCD display.
   Input  : a BW linear array for LCD display (bwimg), a 2D binary array (temp).
SEE ALSO
   VIS_InitBwimg VIS_DrawLimits

LibVision/VIS_DrawLimits

SYNOPSIS
   void VIS_DrawLimits(BYTE *bwimg, VIS_Object *Object, int value)
DESCRIPTION
   Draw object limits and center on bw picture.
   value==0 -> erase, value>0 -> draw.
   Input  : a BW linear array, the region to draw and a draw (i.e. >0) / erase (i.e. ==0) value.
   Output : N/A
SEE ALSO
   VIS_InitBwimg VIS_ComputeBW

LibVision/VIS_DrawBorder

SYNOPSIS
   void VIS_DrawBorder(BYTE *bwimg, int rows, int cols)
DESCRIPTION
   Draw borders in a 1D array for LCD display
   Input  : a 1D BW array, line and column of the border.
   Output : N/A
SEE ALSO
   

LibVision/VIS_MarkObject

SYNOPSIS
   void VIS_MarkObject(image greyimg, int x_middle, int y_middle, int object_size)
DESCRIPTION
   Mark object position by drawing a vertical and horizontal white
   line through it. Ball size is displayed by black lines.
   Birgit Graf, UWA 1998.

LibVision/VIS_ErrorDisplay

SYNOPSIS
   void VIS_ErrorDisplay(char title[16], int error, char msg[16])
DESCRIPTION
   Display error messages.
   Input  : a box title (16 char max.), an error code an error message (16 char max.).
   Output : N/A
SEE ALSO
   

LibVision/VIS_InitShowProgress

SYNOPSIS
   void VIS_InitShowProgress(char title[16])
DESCRIPTION
   Initialise the progress show of a loop (clear screen, display title,...).
   Input  : a loop title (16 char max.).
   Output : N/A
SEE ALSO
   

LibVision/VIS_ShowProgress

SYNOPSIS
   void VIS_ShowProgress(int actual, int max)
DESCRIPTION
   Displays the progress of a loop.
   Input  : the number of the actual loop and the total number of loops.
   Output : N/A
SEE ALSO
   

LibVision/VIS_ShowOffset

SYNOPSIS
   void VIS_ShowOffset()
DESCRIPTION
   Displays the actual offset of the camera.
   'alpha' as a BYTE between 0 and 255, 'beta' as a float in degres.
SEE ALSO
   

LibVision/VIS_InitCam

SYNOPSIS
   int VIS_InitCam(int mode)
DESCRIPTION
   Initialisation of the camera. 10 retries.
   Input  : mode of the camera.
   Output : camversion or INITERROR.
SEE ALSO
   N/A

LibVision/VIS_AutobrightnessDelay

SYNOPSIS
   void VIS_AutobrightnessDelay(int number)
DESCRIPTION
   Let time to camera for autobrightness.
   Input  : number of waits.
   Output : N/A
SEE ALSO
   N/A

LibVision/VIS_TeamRobot

SYNOPSIS
   int VIS_TeamRobot(void)
DESCRIPTION
   Returns a robot team and ID.
   Team is 0 for Eyecam and 1 for Quickam, ID is between 1 and 5.
   Asks for robot ID if not between 1 and 5.
   Input  : N/A
   Output : a two digits integer xy where x is the team and y is the ID.
SEE ALSO
   N/A