OpenCV Provider User’s Guide -1- OpenCV provider DENSO robot vision (DENSO Robot Imaging Library) Version 1.5.4 User's guide February 25, 2015 ORiN Forum DENSO WAVE Inc.
OpenCV Provider User’s Guide -2- ATTENTION: DENSO WAVE doesn’t assume the responsibility of any problems caused by the mistranslation of this document. 【Revision History】 Version Date Content 1.0.0.0 2007-01-30 First edition. 1.0.1.0 2007-04-06 Added several OpenCV commands; OcvTester bugs fixed. 1.1.0.0 2007-08-06 Added several new commands for pattern matching; the start image ID was changed from 0 to 1. 1.2.0.0 2007-11-21 Added triangulation functions and several OpenCV commands. 1.2.1.
OpenCV Provider User’s Guide -3- 1.4.2.0 2012-01-11 Added various commands. Correct SetRobCalDat. 1.4.2 2012-07-17 Document versioning rule was changed. 1.4.3 2012-09-06 Added the recovery function of the database file (mdb). 2012-09-20 Added direction for “SetCameraCtrl”. 2012-10-23 Added commands. 1.4.4 “GetCameraFormatList”, “GetCameraFormat”, “SetCameraFormat” 1.4.5 2012-12-05 [Bug Fix] Memory leak in message transfer function. 2013-03-13 Added various commands.
OpenCV Provider User’s Guide -4- 【Hardware】 Model Version Notes 【Attention】 Additional license for " DENSO Robot Imaging Library " is required to use this provider. ORiN Forum DENSO WAVE Inc.
OpenCV Provider User’s Guide -5- Contents 1. Introduction.............................................................................................. 8 1.1. Installing license ........................................................................................................................9 2. Outline of provider ................................................................................. 10 2.1. Outline.........................................................................................
OpenCV Provider User’s Guide -6- 4. Command Reference ............................................................................ 30 4.1. Controller class .......................................................................................................................35 4.1.1. Video setting .....................................................................................................................35 4.2. File class ...........................................................................
OpenCV Provider User’s Guide -7- 5.10. Haar training window...........................................................................................................163 Appendix A. OpenCV method implementation list ....................................166 Appendix B. uVision21 equivalent OpenCV method ................................181 Appendix C. Intel License Agreement For Open Source Computer Vision Library ..............................................................................................
OpenCV Provider User’s Guide -8- 1. Introduction The OpenCV provider is a provider that uses OpenCV image processing library. The image-processing library is developed by Intel Corporation. DENSO Robot Imaging Library(RIL) is a tool set combining ORiN (Open Robot interface for the Network) and OpenCV (Open Source Computer Vision Library) 1 as a platform of Hand-eye system. The platform is not only just combining those two technologies but also fusing it into one ORiN provider.
OpenCV Provider User’s Guide -9- 1.1. Installing license To use OpenCV Provider, you need to install ORiN2 SDK, and also need to input “DENSO Robot Imaging Libary” license information. If you would like to install it for evaluation, please use the following license. CVG3-MZPB-7W2G-L43Q (valid for 3 months) How to add the license is as follows. 1. Run the CaoConfig tool from the [Start] menu, and select the [Cao Provider] tab. 2. Select the [OpenCV CAO Provider] item on the provider list. 3.
OpenCV Provider User’s Guide - 10 - 2. Outline of provider 2.1. Outline The OpenCV provider acquires the image from the imaging device using DirectShow. OpenCV processes the acquired image according to the user application command. Therefore many kinds of imaging device supporting DirectShow on the market can be used with this provider. The processed image is stored in the image memory. Details of the image memory are described later.
OpenCV Provider User’s Guide - 11 - Extended camera 3 Canon webView Livescope camera ORiN2¥CAO¥ProviderLib¥Canon¥WebView The file format of OpenCV provider is DLL (Dynamic Link Library); that is automatically loaded from CAO engine when it is used. To use OpenCV provider, install ORiN2SDK or manually register the registry in reference with the following table. Table 2-1 OpenCV provider File name CaoProvOpenCV.dll ProgID Registry registration CaoProv.
OpenCV Provider User’s Guide - 12 - Table 2-2 CaoConfig Parameter strings Parameter Meaning Database= Specify an absolute file path of ACCESS database. If omitted, the system uses the default database. That is 'opencv_en.mdb' stored in the bin directory. Please use the following file as a template. ¥Bin¥opencv_master_en.mdb DefaultCamera= Specify default camera ID (default: 1).
OpenCV Provider User’s Guide - 13 - 2.1.1. Image memory OpenCV provider can store the image data in the two types of data area, database area and memory area. The data stored in the database area remains even if OpenCV provider unloaded (non-volatile), but the access speed is very slow. Therefore please don’t use database area for a temporally use. On the other hand, the access speed of the memory area is fast, but the data stored in the area is cleared at the end (Volatile).
OpenCV Provider User’s Guide - 14 - Figure 2-3 Robot -Camera Calibration The triangulation commands of CaoCommand class need to be done the camera calibration. The procedure is as follows. 2.1.2.1. Camera calibration OpenCV Provider provides a simple calibration method using a chessboard to calibrate the intrinsic parameters and the extrinsic parameters of the camera. The procedure is as follows. [Step 1] Prepare chessboard image Each camera requires at least five chessboard images.
OpenCV Provider User’s Guide - 15 - Figure 2-4 Calibration Dialogue There are two ways to take 5 images, a camera shift and a chessboard shift (Figure 2-5). In both cases, the right-top corner of the left-bottom "black box" becomes the origin. 4 4 In case of a chessboard which there is no black box in the left-bottom corner, the origin may become the right-top corner. Please confirm the origin by GetCamPos after executing CalibrateCamera. ORiN Forum DENSO WAVE Inc.
OpenCV Provider User’s Guide - 16 - Figure 2-5 Two ways to take chessboard images [Step 2] Calculate camera parameters Use 'CalibrateCamera' command to calculate camera parameters. When you use chessboard file image in SDK, please specify the values for ‘Square count W’, ‘Square count H’ and ‘Grid size (mm)’ as written on each image.
OpenCV Provider User’s Guide - 17 - aligned to the target object height. For measuring accurate 3D coordinate position, please use triangulation method command. Camera Image Object center GetPosFromCam Z O X X1CAL X1object X2Object X2CAL Figure 2-6 Camera image and actual position error in camera calibration 2.1.2.1.1. Distortion correction The shot image of the camera has distortion, because camera lens also has distortion.
OpenCV Provider User’s Guide - 18 - Figure 2-7 Distortion correction commands 2.1.2.2. Robot calibration There are two ways to connect the world coordinate and a robot coordinate: 1. Calculate the robot parameters between the world coordinate and a robot coordinate by using OpenCV provider functions. 2. Set the world coordinate as a work coordinate of the robot. In this section, the 1st procedure is shown. Regarding the 2nd procedure, please refer to the robot manual.
OpenCV Provider User’s Guide - 19 - After performing the command, the robot parameters are stored in the database. To get the parameters from the database, use 'GetRobCalDat' command. [Step 2] Confirm the result You can get the correct value (X, Y, Z) in the world coordinate after calibration. Please perform 'GetPosFromRob' command with a reasonable value (Xr, Yr, Zr) in the robot coordinate, and then (Xw, Yw, Zw) corresponding (Xr, Yr, Zr) returns. 2.1.3.
OpenCV Provider User’s Guide - 20 - Figure 2-8 Triangulation Triangulation command returns the coordinate position from the origin of the reference image. Camera position is also represented using the same origin, and you can easily calculate the distance between the camera and the target object using Distance command.(Figure 2-9). ORiN Forum DENSO WAVE Inc.
OpenCV Provider User’s Guide - 21 - Figure 2-9 Distance calculation 2.1.4. Message transfer function By using message transfer function of CAO engine, image data stored in received message can be transferred to the specified image ID. Transfer destination is specified by MsgDestID option of AddController(). To transfer images from plural sources to different image ID destinations, create plural CaoController objects and specify different destination image ID in AddController().
OpenCV Provider User’s Guide - 22 - 2.2. Method and Property 2.2.1. CaoWorkspace::AddController method The OpenCV provider searches camera and performs connection process at AddController. If you don't use the option character, it uses setting which registered in registry. (refer 2.1) Format. AddController( ,, [,] ) bstrCtrlName : [in] controller-name bstrProvName : [in] provider name. "CaoProv.
OpenCV Provider User’s Guide - 23 - “CAO/ProviderLib/OpenCV/Bin” directory. A new database file will be generated automatically at the next startup. But all image data stored in the deleted file are discarded. 2.2.2. CaoController::AddCommand method Create CaoCommand for triangulation. Format AddCommand( [,] ) bstrName : [in] command name bstrOption : [in] option character string(unused) Refer4.3.1for available commands. 2.2.3.
OpenCV Provider User’s Guide - 24 - 2.2.6. CaoController::get_VariableNames property The variable list is acquired. Please refer to 2.3.1 for the acquired variable. 2.2.7. CaoCommand::Execute method Execute specified command. Refer to 4.3 for details of each commands. 2.2.8. CaoCommand::put_Parameter property Set parameters for a command. Refer to 4.3 for details of each commands. This property does not check illegal parameters. 2.2.9. CaoCommand::get_Parameter property Get parameters set by 2.2.8 .
OpenCV Provider User’s Guide - 25 - 2.2.13. CaoFile::put_ID property Change referred image memory. 2.2.14. CaoFile::get_ID property Get ID of the currently referring image memory. 2.2.15. CaoFile::get_DateLastModified property Get last modified date of the currently referring image memory. VT_EMPTY will be returned if the memory does not have image. 2.2.16. CaoFile::Get_Size property Get file size of the referring image memory. 2.2.17.
OpenCV Provider User’s Guide - 26 - 2.3. Variable list 2.3.1. Controller class Table 2-5 Controller class system variable list Attribute Variable identifier Data type Explanation get put @IMG_MAX VT_I4 Size of the entire image memory √ ‐ @IMGDB_MAX VT_I4 Size of data base area of image memory √ ‐ @CAM_COUNT VT_I4 Number of connected cameras √ ‐ @VERSION VT_BSTR Provider version √ ‐ VT_BOOL CAO message event generation setting √ √ Number of extended camera. √ - [V1.3.
OpenCV Provider User’s Guide - 27 - 2.4. Error code Open CV provider defines folloing specific error codes. For common error code for ORiN2, please refer to the error code section of “ORiN2 Programming guide”. Table 2-3 Specific error code for OpenCV provider Error name Error code Explanation E_CAOP_NO_LICENSE 0x80100000 There is no license. Please purchase an additional license. E_CAOP_DB_RESTORE 0x80100001 The database file (mdb) was crashed.
OpenCV Provider User’s Guide - 28 - 3. Sample program RIL programs can be developed with various programming languages (C/C++, VB, etc.) The easiest way is to use RIL is to use CaoScript, a VB Script based scripting language. CaoScript is included in ORiN2 SDK. Section 3.1explains CaoScript sample program. For other samples, refer to section 3.2 3.1. CaoScript sample program This sample program is to detect target position (target image is stored in ID101), and move DENSO robot to the detected position.
OpenCV Provider User’s Guide DENSO NetwoRC - 29 Search for a specified target image in the camera Visual Basic 6 image, and store the detected coordinate into a variable of the controller with IP address “10.6.235.60”. Filter Display the image from camera in the following four patterns. Visual Basic 2005 ・ raw image ・ gray-scale image ・ binary image Canny filtered image FindCountoursEx Execute FindCountoursEx command. C Histogram Generate a histogram of camera 1 image.
OpenCV Provider User’s Guide - 30 - 4. Command Reference This chapter shows the details of each OpenCV provider command. Regarding the detailed behavior of the commands depending on OpenCV library deeply, please refer the OpenCV manual like the followings. And regarding the used OpenCV functions in the OpenCV provider commands, please see 5.10.Appendix A. [OpenCV Japanese manual] http://opencv.jp/opencv-1.0.0/document/ [OpenCV English manual] http://opencv.jp/opencv-1.0.0_org/docs/index.
OpenCV Provider User’s Guide - 31 - Table 4-2 File class command list Category Command name Function General SetROI GetROI ResetROI PutColor GetColor SearchPoint Trim ImageSize IsColor IsEmpty IsUpdated ClearUpdated Distance InnerProduct OuterProduct PutHelp Set a ROI (Region Of Interest) Get current ROI. Reset current ROI setting.
OpenCV Provider User’s Guide - 32 - PyrDown PyrUp Down sampling Upsanmpling P.71 P.72 NOT AND OR XOR ADD SUB MAXEx MINEx ABS LUT SetLUT GetLUT Bit inversion Logical AND Logical OR Logical Exclusive OR Addition Subtraction Maximum value Minimum value Absolute value Lookup table translation Set lookup table Get lookup table P.73 P.73 P.74 P.74 P.75 P.75 P.76 P.76 P.77 P.77 P.78 P.
OpenCV Provider User’s Guide - 33 - HistAve AutoThreshPTile AutoThreshMode AutoThreshDiscrim Calculate average luminance. Calculate threshold value using P-tile method Calculate threshold value using mode method Calculate threshold value using discrimination analysis method P.101 P.101 P.101 P.102 MatchTemplate MatchShapesEx MatchTemplate2 MatchShapes2 CamShift HaarDetect Template matching Contour matching Extended template matching Extended shape matching Object tracking Haar matching P.102 P.104 P.
OpenCV Provider User’s Guide HoughLine HoughCircles DFTEx IDFT OpticalFlowEx OpticalFlowPyrEx BoxPoints FindHomography QRDecode OCRead - 34 Find lines using Hough transform Find circles using Hough transform Fourier transform Inverse Fourier transform Calculate optical flow for two images Optical flow using image pyramid Calculate the four corner positions of the specified rectangular. Calculate projection matrix Decode several types of two dimensional code such as QRCode Character recognition P.131 P.
OpenCV Provider User’s Guide - 35 - 4.1. Controller class 4.1.1. Video setting OpenFilterProperty Format object.OpenFilterProperty , Parameters = VT_I4: Camera ID6 = VT_I4: Handle to parent or owner window Return value None Explanation Open a camera filter property window. OpenPinProperty Format object.
OpenCV Provider User’s Guide - 36 - used. Related item GetCtrlMode GetCtrlMode Format object.GetCtrlMode() Parameters = VT_I4: Camera ID Return value = VT_I4: Mode 1 VideoControlFlag_FlipHorizontal Horizontal flip 2 VideoControlFlag_FlipVertical Vertical flip 4 VideoControlFlag_ExternalTriggerEnable External trigger enable 8 VideoControlFlag_Trigger External trigger simulation Explanation Get a video control mode.
OpenCV Provider User’s Guide - 37 - = VT_I4: Flag 1 CameraControl_Flags_Auto Automatic Control 2 CameraControl_Flags_Manual Manual Control Explanation Get a parameter range of a camera control. Related item Please refer to IAMCameraControl::GetRange() with MSDN for the details. [Caution] This command may not be executed properly depending on a camera driver used. GetCameraCtrl, SetCameraCtrl GetCameraCtrl Format object.
OpenCV Provider User’s Guide Parameters - 38 - = VT_I4: Camera ID = VT_I4: Property ID 0 CameraControl_Pan Pan (degree) 1 CameraControl_Tilt Tile (degree) 2 CameraControl_Roll Roll (degree) 3 CameraControl_Zoom Zoom (mm) 4 CameraControl_Exposure Exposure (2n Sec.
OpenCV Provider User’s Guide - 39 - 7 VideoProcAmp_WhiteBalance White balance 8 VideoProcAmp_BacklightCompensation Backlight compensation (0: OFF, 1: ON) 9 Return value VideoProcAmp_Gain Gain = VT_I4: Min value = VT_I4: Max value = VT_I4: Step = VT_I4: Default value = VT_I4: Flag 1 CameraControl_Flags_Auto Automatic control 2 CameraControl_Flags_Manual Manual control Explanation Get a parameter range of a video control.
OpenCV Provider User’s Guide Return value - 40 - = VT_I4: Value = VT_I4: Flag 1 CameraControl_Flags_Auto Automatic control 2 CameraControl_Flags_Manual Manual control Explanation Get a parameter of a video control. Related item Please refer to IAMVideoProcAmp::Set() with MSDN for the details. [Caution] This command may not be executed properly depending on a camera driver used. GetRangeVideoProcAmp, SetVideoProcAmp SetVideoProcAmp Format object.
OpenCV Provider User’s Guide - 41 - used. Related item GetRangeVideoProcAmp, GetVideoProcAmp GetCameraFormatList Format object.GetCameraFormatList() Parameters Return value = VT_I4: Camera ID = VT_VARIANT|VT_ARRAY:FormatList (, , …) = VT_I4|VT_ARRAY:Format (,,) = VT_I4:Camera format ID (0~) = VT_I4:X resolution = VT_I4:Y resolution Explanation Get camera format list.
OpenCV Provider User’s Guide - 42 - Return value None Explanation Set camera format ID. [Caution] Whether this command correctly works is depending on a camera driver. Related item GetCameraFormatList, GetCameraFormat ExtExecSoftTrigger Format object.ExtExecSoftTrigger() Parameters = VT_I4:Camera ID Return value None Explanation Execute software trigger of camera. [V1.4.6or later] This command is available only for extended camera.
OpenCV Provider User’s Guide - 43 - = VT_BSTR:Command name = VT_VARIANT:Parameter Return value = VT_VARIANT:Return value Explanation Execute the command of extended camera This command is available only for extended camera. This command runs CaoController::Execute() on ORiN2 provider which is compatible with extended camera.
OpenCV Provider User’s Guide Related item - 44 - This command always succeeds regardless of the connection state with an extended camera. ExtConnect, ExtIsConnected ExtIsConnected [V1.5.1 or later] Format object.ExtIsConnected() Parameters = VT_I4:Camera ID Return value = VT_VARIANT:Result Explanation TRUE Communication is possible. FALSE Communication is impossible. Check the communication state with the extended camera specified by .
OpenCV Provider User’s Guide Explanation Set extended camera's connection option. Related item ExtConnect, ExtDisconnect ORiN Forum - 45 - DENSO WAVE Inc.
OpenCV Provider User’s Guide - 46 - 4.2. File class 4.2.1. General SetROI Format object.SetROI Parameters = VT_I4|VT_ARRAY:ROI Information (, , , ) = VT_I4: Start point X coordinates = VT_I4: Start point Y coordinates = VT_I4: Width = VT_I4: Height Return value None Explanation Set region of interest(ROI). After executing this command, the input and result about coordinates depend on and .
OpenCV Provider User’s Guide - 47 - w = vntRet(2) ‘ h = vntRet(3) ‘ ResetROI Format object.ResetROI() Parameters None Return value None Explanation Reset the parameter that set by SetROI command. Related item SetROI, GetROI Example [VB6] caoFile.Execute “ResetROI” PutColor Format object.
OpenCV Provider User’s Guide Example - 48 - [VB6] ‘Draw a point in red at XY position (100,200) and output it to 101st image. vntParam = Array(101, 100, 200, 255, 0, 0) caoFile.Execute “PutColor”, vntParam GetColor Format object.
OpenCV Provider User’s Guide - 49 - = VT_I4: Search value = VT_I4: Search condition Return value 0 equal [Point data] = 1 greater than [Point data] > 2 less than [Point data] < = VT_I4|VT_ARRAY:Searched coordinate = VT_I4: Searched X coordinate = VT_I4: Searched Y coordinate Explanation Search point. Color image is converted to gray scale before searching.
OpenCV Provider User’s Guide - 50 - Related item SearchPoint,SetROI Example [VB6] ‘ Trim the area with threshold value condition of more than 128. vntParam = Array(128, 0) vntRet = caoFile.Execute( “Trim”, vntParam ) x = vntRet(0) ‘ y = vntRet(1) ‘ w = vntRet(2) ‘ h = vntRet(3) ‘ ImageSize Format object.ImageSize() Parameters None Return value = VT_I4|VT_ARRAY:Size of image. = VT_I4: Width of image = VT_I4: Height of image Explanation Get image size.
OpenCV Provider User’s Guide - 51 - IsEmpty [V1.4.0 or later] Format object.IsEmpty() Parameters None Return value = VT_BOOL:Empty or not Explanation TRUE Empty FALSE Not empty Determine whether an image data is empty. IsUpdated [V1.4.0 or later] Format object.IsUpdated () Parameters None Return value = VT_BOOL:The state of update of image data. Explanation TRUE Updated(Default) FALSE nonupdated Determine whether an image data is updated.
OpenCV Provider User’s Guide - 52 - = VT_I4: Y coordinate = VT_I4: Z coordinate = VT_I4|VT_ARRAY: Coordinate point 2 (,,) = VT_I4: X coordinate = VT_I4: Y coordinate = VT_I4: Z coordinate Return value = VT_R8: Distance between two points Explanation Measure the distance between and . InnerProduct Format object.
OpenCV Provider User’s Guide - 53 - = VT_I4: Z Return value = VT_R8|VT_ARRAY: Outer product (,,) = VT_I4: X = VT_I4: Y = VT_I4: Z Explanation Calculate the outer product between and . PutHelp Format object.PutHelp Parameters = VT_BSTR: String Return value None Explanation Set a character string that can be obtained by CaoFile::get_Help. This is not available for the raw image areas. 4.2.2.
OpenCV Provider User’s Guide - 54 - Cut Format object.Cut
OpenCV Provider User’s Guide - 55 - bitmap image. Related item Copy, Cut Rotate Format object.Rotate , , , , Parameters = VT_I4: Output Image ID = VT_I4: X Coordinates = VT_I4: Y Coordinates = VT_I4: Rotating angle (degree) = VT_I4: Flag (|) = 0 CV_INTER_NN nearest-neigbor interpolation. 1 CV_INTER_LINEAR bilinear interpolation. 2 CV_INTER_AREA resampling using pixel area relation.
OpenCV Provider User’s Guide - 56 - Color output format is 24bit color bitmap image, and grayscale output format is 8bit bitmap image. [Note] From Version 1.3.5, rotation dilection is changed to crockwise. Related item Resize, Flip Flip Format object.Flip , Parameters = VT_I4: Output Image ID = VT_I4: Type 0 Flip around Y axis 1 Flip around X axis 2 Flip around both axes Return value = VT_UI1|VT_ARRAY: Changed Image Explanation Flip image.
OpenCV Provider User’s Guide - 57 method for image decimation that gives moire-free results. In case of zooming it is similar to CV_INTER_NN method. 3 CV_INTER_CUBIC bicubic interpolation. Return value = VT_UI1|VT_ARRAY: Changed Image Explanation Resize image. If Output Image ID=0, return value is changed image data. If Output Image Id <> 0, the change image is stored in the specified ID image memory, and return value is Empty.
OpenCV Provider User’s Guide Related item - 58 - Merge Merge Format object.Merge , , , Parameters = VT_I4: Output Image ID = VT_I4: Red Output Image ID = VT_I4: Green Output Image ID = VT_I4: Blue Output Image ID Return value = VT_UI1|VT_ARRAY: Changed Image Explanation Merge three gray scale images that correspond to R, G and B components of the color image, and output a color image.
OpenCV Provider User’s Guide Example - 59 - [VB6] caoFile.Execute “ConvertGray”, 101 ‘ Output to the 101st image. ThresholdEx Format object.ThresholdEx , , , Parameters = VT_I4: Output Image ID = VT_I4: Threshold = VT_I4: Maximum Value = VT_I4: Threshold process type ORiN Forum 0 CV_THRESH_BINARY 1 CV_THRESH_BINARY_INV 2 CV_THRESH_TRUNC 3 CV_THRESH_TOZERO 4 CV_THRESH_TOZERO_INV DENSO WAVE Inc.
OpenCV Provider User’s Guide Return value = VT_UI1|VT_ARRAY : Changed Image Explanation Threshold process. - 60 - Color image is automatically converted to grayscale image. If Output Image ID=0, return value is changed image data. If Output Image Id <> 0, the change image is stored in the specified ID image memory, and return value is Empty. The changed image data is output by the 8-bit bitmap file format of the Windows standard.
OpenCV Provider User’s Guide - 61 - AdaptiveThresholdEx Format object.AdaptiveThresholdEx , , , , , Parameters = VT_I4: Output Image ID = VT_I4: Maximum Value = VT_I4: Adaptive threshold algorithm type 0 CV_ADAPTIVE_THRESH_MEAN_C 1 CV_ADAPTIVE_THRESH_GAUSSIAN_C = VT_I4: Threshold process type 0 CV_THRESH_BINARY 1 CV_THRESH_BINARY_INV = VT_I4: The size of a pixel neighborhood.
OpenCV Provider User’s Guide - 62 - Smooth Format object.Smooth , , , , , Parameters = VT_I4: Output Image ID = VT_I4: Smoothing type 0 CV_BLUR_NO_SCALE summation over a pixel × (simple blur with no neighborhood. scaling) 1 CV_BLUR summation over a pixel × (simple blur) neighborhood with subsequent scaling by 1/(・).
OpenCV Provider User’s Guide - 63 - different (from param3) sigma in the vertical direction. Return value = VT_UI1|VT_ARRAY: Changed Image Explanation Smoothing. Parameters 1-4 have different meanings according to the conversion Type. If Output Image ID=0, return value is changed image data. If Output Image Id <> 0, the change image is stored in the specified ID image memory, and return value is Empty. The changed image data is output by the bitmap file format of the Windows standard.
OpenCV Provider User’s Guide - 64 - The changed image data is output by the bitmap file format of the Windows standard. Color output format is 24bits color bitmap image, and grayscale output format is 8bit bitmap image. This command calculates the image derivative by convolving the image with the appropriate kernel: dst ( x, y ) = d XOrder +YOrder src dx XOrder ⋅ dy YOrder ( x, y ) Laplace Format object.
OpenCV Provider User’s Guide - 65 - CannyEx Format object.CannyEx , , , Parameters = VT_I4: Output Image ID = VT_I4: Threshold 1 = VT_I4: Threshold 2 = VT_I4: Aperture size Size of the extended Sobel kernel, must be 3, 5 or 7. (it has the same meaning as in Sobel command). Return value = VT_UI1|VT_ARRAY: Changed Image Explanation Canny filter.
OpenCV Provider User’s Guide - 66 - 1 CV_INTER_LINEAR bilinear interpolation. 2 CV_INTER_AREA resampling using pixel area relation. It is preferred method for image decimation that gives moire-free results. In case of zooming it is similar to CV_INTER_NN method. 3 CV_INTER_CUBIC bicubic interpolation. = 8 CV_WARP_FILL_OUTLIERS Fill all the destination image pixels. If some of them correspond to outliers in the source image, they are set to 0.
OpenCV Provider User’s Guide - 67 - = VT_R8: = VT_R8: = VT_R8: = VT_R8: = VT_R8: r11 r12 r13 r 21 r 22 r 23 r 31 r 32 r 33 = VT_I4:Flag (|) = 0 CV_INTER_NN nearest-neigbor interpolation. 1 CV_INTER_LINEAR bilinear interpolation. 2 CV_INTER_AREA resampling using pixel area relation. It is preferred method for image decimation that gives moire-free results.
OpenCV Provider User’s Guide - 68 - PreCornerDetectEx Format object.PreCornerDetectEx , Parameters = VT_I4: Output Image ID = VT_I4: Aperture size Size of the extended Sobel kernel, must be 3, 5 or 7. (it has the same meaning as in Sobel command). Return value = VT_UI1|VT_ARRAY: Changed Image Explanation Corner detector. Color image is automatically converted to grayscale image. If Output Image ID=0, return value is changed image data.
OpenCV Provider User’s Guide Explanation - 69 - Harris edge detector. Color image is automatically converted to grayscale image. If Output Image ID=0, return value is changed image data. If Output Image Id <> 0, the change image is stored in the specified ID image memory, and return value is Empty. The changed image data is output by the 8-bit bitmap file format of the Windows standard. CalcBackProjectEx Format object.
OpenCV Provider User’s Guide Explanation - 70 - Repair image. As for the mask data, the brightness of < MaskID > image is made from the value of one or more. Color image is automatically converted to grayscale image. If Output Image ID=0, return value is changed image data. If Output Image Id <> 0, the change image is stored in the specified ID image memory, and return value is Empty. The changed image data is output by the bitmap file format of the Windows standard.
OpenCV Provider User’s Guide Related item - 71 - Dilate Dilate Format object.
OpenCV Provider User’s Guide Explanation - 72 - Performs downsampling step of Gaussian pyramid decomposition. First it convolves source image with the specified filter and then downsamples the image by rejecting even rows and columns. The width and height of output image becomes half of input image. When output image number is 0, transferred image is output to return value. When output image is not 0, transferred image is output to the specified number, and return value.
OpenCV Provider User’s Guide - 73 - 4.2.4. Mask NOT Format object.NOT Parameters = VT_I4: Output Image ID Return value = VT_UI1|VT_ARRAY: Changed Image Explanation Bit inversion. If Output Image ID=0, return value is changed image data. If Output Image Id <> 0, the change image is stored in the specified ID image memory, and return value is Empty. The changed image data is output by the bitmap file format of the Windows standard.
OpenCV Provider User’s Guide - 74 - OR Format object.OR , Parameters = VT_I4: Output Image ID = VT_I4: Input Image ID Return value = VT_UI1|VT_ARRAY: Changed Image Explanation Logical OR. If Output Image ID=0, return value is changed image data. If Output Image Id <> 0, the change image is stored in the specified ID image memory, and return value is Empty. The changed image data is output by the bitmap file format of the Windows standard.
OpenCV Provider User’s Guide - 75 - ADD Format object.ADD , Parameters = VT_I4: Output Image ID = VT_I4: Input Image ID Return value = VT_UI1|VT_ARRAY: Changed Image Explanation Addition. If Output Image ID=0, return value is changed image data. If Output Image Id <> 0, the change image is stored in the specified ID image memory, and return value is Empty. The changed image data is output by the bitmap file format of the Windows standard.
OpenCV Provider User’s Guide - 76 - MAXEx Format object.MAXEx , Parameters = VT_I4: Output Image ID = VT_I4: Input Image ID Return value = VT_UI1|VT_ARRAY: Changed Image Explanation Maximum value. Color image is automatically converted to grayscale image. If Output Image ID=0, return value is changed image data. If Output Image Id <> 0, the change image is stored in the specified ID image memory, and return value is Empty.
OpenCV Provider User’s Guide - 77 - ABS Format object.ABS , Parameters = VT_I4: Output Image ID = VT_I4: Input Image ID Return value = VT_UI1|VT_ARRAY: Changed Image Explanation Absolute value. If Output Image ID=0, return value is changed image data. If Output Image Id <> 0, the change image is stored in the specified ID image memory, and return value is Empty. The changed image data is output by the bitmap file format of the Windows standard.
OpenCV Provider User’s Guide Related item - 78 - SetLUT, GetLUT SetLUT [V1.3.5 or later] Format object.SetLUT , , , Parameters = VT_I4: Lookup table number = VT_UI1|VT_ARRAY: Red hue lookup table = VT_UI1|VT_ARRAY: Green hue lookup table = VT_UI1|VT_ARRAY: Blue hue lookup table Return value = VT_UI1|VT_ARRAY: Changed Image Explanation Setup the specified lookup table. Each hue table requires 256 pixels.OpenCV Provider User’s Guide - 79 - 4.2.5. Draw Line Format object.
OpenCV Provider User’s Guide Parameters - 80 - = VT_I4: Output Image ID = VT_I4: Start point X coordinates = VT_I4: Start point Y coordinates = VT_I4: Length = VT_I4: Rotating angle (degree) = VT_I4: Red density = VT_I4: Green density = VT_I4: Blue density = VT_I4: Thickness = VT_I4: Line type 0,8 8-connected line. 4 4-connected line. 16 antialiased line.
OpenCV Provider User’s Guide - 81 - = VT_I4: Red density = VT_I4: Green density = VT_I4: Blue density = VT_I4: Thickness = VT_I4: Line type 0,8 8-connected line. 4 4-connected line. 16 antialiased line. Return value = VT_UI1|VT_ARRAY: Changed Image Explanation Draw a rectangle. For grayscale image, the drawing brightness is set to the value of . If Output Image ID=0, return value is changed image data.
OpenCV Provider User’s Guide - 82 - Return value = VT_UI1|VT_ARRAY: Changed Image Explanation Draw a circle. For grayscale image, the drawing brightness is set to the value of . If Output Image ID=0, return value is changed image data. If Output Image Id <> 0, the change image is stored in the specified ID image memory, and return value is Empty. The changed image data is output by the bitmap file format of the Windows standard.
OpenCV Provider User’s Guide - 83 - the change image is stored in the specified ID image memory, and return value is Empty. The changed image data is output by the bitmap file format of the Windows standard. Color output format is 24bit color bitmap image, and grayscale output format is 8bit bitmap image. Please see the Ellipse function in the OpenCV reference for the details. [Note] From Version 1.3.5, rotation dilection is changed to crockwise.. Sector Format object.
OpenCV Provider User’s Guide - 84 - Color output format is 24bit color bitmap image, and grayscale output format is 8bit bitmap image. [Note] From Version 1.3.5, rotation dilection is changed to crockwise. Cross Format object.
OpenCV Provider User’s Guide - 85 - Text Format object.
OpenCV Provider User’s Guide - 86 - Thickness of lines composing letters outlines. The function cvLine is used for drawing letters. = VT_I4: Thickness Return value = VT_UI1|VT_ARRAY: Changed Image Explanation Display character string. For grayscale image, the drawing brightness is set to the value of . < Shear > is 0 degrees by 0.0, and 45 degrees by 1.0. If Output Image ID=0, return value is changed image data.
OpenCV Provider User’s Guide - 87 - IMPLE segments, that is, the function leaves only their ending points; 3 4 5 CV_CHAIN_APPROX_T apply one of the flavors of Teh-Chin chain C89_L1 approximation algorithm. CV_CHAIN_APPROX_T apply one of the flavors of Teh-Chin chain C89_KCOS approximation algorithm. CV_LINK_RUNS use completely different contour retrieval algorithm via linking of horizontal segments of 1’s. Only CV_RETR_LIST retrieval mode can be used with this method.
OpenCV Provider User’s Guide - 88 - About the another error, please refer to the chapter 2.4. ContoursNumber Format object.ContoursNumber( , ) Parameters = VT_I4: X coordinates = VT_I4: Y coordinates Return value = VT_I4: Outline ID Explanation Retrieve Contour ID. If the specified coordinate does not correspond to Contour ID, 0 is returned. This command returns error if “FindConoursEx” is not executed beforehand. Error 0x80101001 : The contours is not detectable.
OpenCV Provider User’s Guide - 89 - About the another error, please refer to the chapter 2.4. BoundingRect Format object.BoundingRect( ) Parameters = VT_I4: Contour ID Return value = VT_I4|VT_ARRAY: Rectangle which connots outline.(, , , ) = VT_I4: X coordinate of rectangule left up corner = VT_I4: Y coordinate of rectangle left up corner = VT_I4: Width = VT_I4: Height Explanation Find a rectangle bounding a contour.
OpenCV Provider User’s Guide Error 0x80101001 - 90 : Contour is not found. Please execute "FindContoursEx" command. About another error, please refer to 2.4. ArcLength Format object.ArcLength( ) Parameters = VT_I4: Contour ID Return value = VT_R8: Contour boundary length Explanation Get contour boundary length. This command returns error if “FindConoursEx” is not executed beforehand. Error 0x80101001 : Contour is not found.
OpenCV Provider User’s Guide - 91 - , , , Parameters = VT_I4: output image number = VT_I4: input image number = VT_I4: contour number = VT_I4: Red element of external contour = VT_I4: Green element of external contour = VT_I4: Blue element of external contour = VT_I4: Red element of internal hole = VT_I4: Green element of internal hole = VT_I4: Blue element of internal
OpenCV Provider User’s Guide - 92 - 4.2.7. Blob FindBlobs Format object.FindBlobs( , , ) Parameters = VT_I4: Mask image ID = VT_I4: Threshold = VT_BOOL: Flag whether it calculates moments or not Return value = VT_I4: Count of blobs Explanation Finds blobs. A color-scale image is converted to gray-scale image automatically. If the mask image ID is 0, then masking is not done.
OpenCV Provider User’s Guide - 93 - 0 Area 1 AreaElipseRatio 2 AxisRatio 3 Breadth 4 Compactness 5 DiffX 6 DiffY 7 DistanceFromPoint 8 Elongation 9 Exterior 10 ExternHullPerimeterRatio 11 ExternPerimeter 12 ExternPerimeterRatio 13 HullArea 14 HullPerimeter 15 Length 16 MajorAxisLength 17 MaxX 18 MaxXatMaxY 19 MaxY 20 MaxYatMinX 21 Mean 22 MinorAxisLength 23 MinX 24 MinXatMinY 25 MinY 26 MinYatMaxX 27 Moment 28 Orientation 29 OrientationCos 30 Pe
OpenCV Provider User’s Guide - 94 - BlobResult Format object.
OpenCV Provider User’s Guide - 95 - Others Error 0x80101001 n/a : n/a The blob is not detectable. Please execute "FindBlobs" command. About the another error, please refer to the capter 2.4. Related item FindBlobs BlobResults Format object.BlobResults( ) Parameters = VT_I4: Blob ID Return value = VT_VARIANT|VT_ARRAY: Blob result.
OpenCV Provider User’s Guide Error 0x80101001 - 96 : Blob is not found. Please execute "FindContoursEx" command. About the another error, please refer to the capter 2.4. Related item FindBlobs BlobEllipse Format object.BlobEllipse( ) Parameters = VT_I4:Blob ID Return value = VT_I4: Center X coordinates = VT_I4: Center Y coordinates = VT_I4: Width = VT_I4Height = VT_I4: Rotating angle Explanation Get an ellipse fitting the blob.
OpenCV Provider User’s Guide 1 - 97 - ∑ [T (x′, y ′) − I (x + x′, y + y ′)] CV_TM_ SQDIFF_ 2 R ( x, y ) = x′ , y ′ ∑ T (x′, y ′) ⋅ ∑ I (x + x′, y + y ′) 2 NORME x′ , y ′ D 2 CV_TM_ CCORR 3 x′ , y ′ ∑ [T (x′, y ′) ⋅ I (x + x′, y + y ′)] R ( x, y ) = x′ , y ′ ∑ T (x′, y ′) ⋅ ∑ I (x + x′, y + y ′) 2 NORME x′ , y ′ D 4 CV_TM_ CCOEFF x′ , y ′ R( x, y ) = ∑ [T ( x ′, y ′) ⋅ I ( x + x ′, y + y ′)] CV_TM_ CCORR_ 2 2 x′ , y ′ R( x, y ) = ∑ [T ′( x ′, y ′) ⋅ I ′(x + x ′, y + y ′)] x′ , y ′
OpenCV Provider User’s Guide - 98 - = VT_R8: Rotating angle = VT_R8: Correlation value Explanation Extended template matching between each detected blog and image. The process same as MatchTemplate2 command is used for extended template matching. This command returns error before executing FindBlobs command. [Note] From Version 1.3.5, rotation dilection is changed to crockwise. Error 0x80101001 : Blob is not found. Please execute "FindContoursEx" command.
OpenCV Provider User’s Guide - 99 - = VT_R8: Minimum scale = VT_R8: Correlation value of contours = VT_I4: Number of detections Return value = VT_VARIANT|VT_ARRAY: Detected point list (, , …) = VT_I4|VT_ARRAY:Detected point (,,) = VT_I4: X coordinates = VT_I4: Y coordinates = VT_R8: Rotating angle = VT_R8: Correlation value Explanation Extended template matching between each detected blog and
OpenCV Provider User’s Guide Parameters - 100 - = VT_R8|VT_ARRAY: Histogram = VT_R8: Normalization factor Return value = VT_R8|VT_ARRAY: Histogram Explanation Normalize histogram. Related item CalcHistEx ThreshHistEx Format object.
OpenCV Provider User’s Guide - 101 - Parameters = VT_R8|VT_ARRAY: Histogram Return value = VT_R4: Minimum value of histogram = VT_R4: Maximum value of histogram = VT_I4: Minimum value of luminance = VT_I4: Maximum value of luminance Explanation Get maximum and minimum value of histogram. HistAve Format object.
OpenCV Provider User’s Guide - 102 - Parameters = VT_R8|VT_ARRAY: Histogram Return value = VT_I4: Threshold value Explanation Calculate the threshold by mode method. Related item CalcHistEx, AutoThreshPTile, AutoThreshDiscrim AutoThreshDiscrim Format object.AutoThreshDiscrim( ) Parameters = VT_R8|VT_ARRAY: Histogram Return value = VT_I4: Threshold value Explanation Calculate the threshold by discriminant analysis method.
OpenCV Provider User’s Guide 3 - 103 - ∑ [T (x′, y ′) ⋅ I (x + x′, y + y ′)] CV_TM_ CCORR_ R ( x, y ) = x′ , y ′ ∑ T (x′, y ′) ⋅ ∑ I (x + x′, y + y ′) 2 NORME x′ , y ′ D 4 CV_TM_ CCOEFF 2 x′ , y ′ R( x, y ) = ∑ [T ′( x ′, y ′) ⋅ I ′( x + x ′, y + y ′)] x′ , y ′ where T ′( x ′, y ′) = T ( x ′, y ′) − ∑ T (x + x′′, y + y ′′) x′′, y ′′ (w ⋅ h ) I ′(x + x ′, y + y ′) = I ( x + x ′, y + y ′) − 5 CV_TM_ CCOEFF R ( x, y ) = _NORME D ∑ I (x + x′′, y + y ′′) x′′, y ′′ w⋅h ∑ [T ′(x′, y ′) ⋅
OpenCV Provider User’s Guide - 104 - MatchShapesEx Format object.MatchShapesEx( , ) Parameters = VT_I4: Template Image ID = VT_I4: Matching method A means original image and B means template image in the table below.
OpenCV Provider User’s Guide 0 CV_TM_ SQDIFF 1 - 105 2 R( x, y ) = ∑ [T ( x ′, y ′) − I ( x + x ′, y + y ′)] x′ , y ′ CV_TM_ SQDIFF_ 2 R ( x, y ) = NORME CV_TM_ CCORR 3 ∑ T (x′, y ′) ⋅ ∑ I (x + x′, y + y ′) 2 R ( x, y ) = ∑ [T (x′, y ′) ⋅ I (x + x′, y + y ′)] x′ , y ′ ∑ T (x′, y ′) ⋅ ∑ I (x + x′, y + y ′) 2 x′ , y ′ D CCOEFF x′ , y ′ x′ , y ′ NORME CV_TM_ 2 R( x, y ) = ∑ [T ( x ′, y ′) ⋅ I ( x + x ′, y + y ′)] CV_TM_ CCORR_ 4 x′ , y ′ x′ , y ′ D 2 ∑ [T (x′, y ′) − I (x + x′, y +
OpenCV Provider User’s Guide - 106 - = VT_I4: X coordinates = VT_I4: Y coordinates = VT_I4: Rotating angle = VT_R8: Correlation value Explanation Perform extended template matching between current image and image. Return values are the center point of a detected image which has the highest correlative values up to . If correlative value is below or the center point is very near the highest correlative point, then the values are filterd.
OpenCV Provider User’s Guide Parameters - 107 - = VT_I4: Template Image ID = VT_I4: Matching method A means original image and B means template image in the table below.
OpenCV Provider User’s Guide - 108 - If current image or image is not binary image, contour cannot be correctly detected. Contour is extracted from the white colored part of the binary image. Please use binary images in which search target is white colored. If two or more cantors are extracted from image, matching may fail. Therefore, image should be selected so that return value of the FindContours for the image is 1.
OpenCV Provider User’s Guide Explanation - 109 - Object tracking. HaarDetect Format object.
OpenCV Provider User’s Guide - 110 - CARDRun2 [V1.5.0 or later] Format object.
OpenCV Provider User’s Guide - 111 - For the template image, specify an image which size is between 2000 pixels and three million pixels. For and , specify respective point that will be detected as a execution result of CARDRunMulti. returns the number of the feature points of the template image used by CARDRunMulti. To change the template image, execute the command again. If “0” is specified to , a processing image is not created.
OpenCV Provider User’s Guide - 112 - The size of detection target image must be three million pixels or less. An object whose correlation value is smaller than the value specified by will be excluded from the detection result. If the distance between the center of detected objects is less than the value specified in , the one with smaller correlation value will be excluded from the searching result, that prevents to count identical object two times or more.
OpenCV Provider User’s Guide 2 4 - 113 - CV_CALIB_CB_NO Normalize the image using cvNormalizeHist RMALIZE_IMAGE before applying fixed or adaptive thresholding. CV_CALIB_CB_FIL Use TER_QUADS perimeter, square-like shape) to filter out false additional criteria (like contour area, quads that are extracted at the contour retrieval stage. = VT_I4: Camera calibration ID Return value None Explanation Calibrate camera parameters.
OpenCV Provider User’s Guide Return value None Explanation Perform robot calibration. - 114 - Specify arbitraly numbers of World – Robot coordinate corresponding points, and calculate calibration data. Related item SetRobCalDat, GetRobCalDat, GetPosFromRob, GetRobPos, GetRobPosFromCam, GetCamPosFromRob FindChessBoardCorners Format object.
OpenCV Provider User’s Guide - 115 - DrawChessBoardCorners Format object.
OpenCV Provider User’s Guide - 116 - = VT_I4: Green density = VT_I4: Blue density Return value = VT_UI1|VT_ARRAY: Changed Image Explanation Draw X and Y axis which is based on calibration data. For grayscale image, the drawing brightness is set to the value of . If Output Image ID=0, return value is changed image data. If Output Image Id <> 0, the change image is stored in the specified ID image memory, and return value is Empty.
OpenCV Provider User’s Guide - 117 - = VT_R8: = VT_R8: = VT_R8: = VT_R8: = VT_R8: = VT_R8: = VT_R8: Translation motion vector = VT_R8: = VT_R8: = VT_I4: Camera calibration ID u fx s v = 0 1 0 X 0 cx r11 r12 r13 dx Y fy cy × r 21 r 22 r 23 dy × Z 0 1 r 31 r 32 r 33 dz 1 Return value None Explanation Set internal and external parameters and distortion coefficien
OpenCV Provider User’s Guide - 118 - = VT_R8: Radius direction distortion coefficients = VT_R8: Circumference direction distortion coefficients = VT_R8: Circumference direction distortion coefficients = VT_R8|VT_ARRAY: External parameters (,,,,,,,,,,,) = VT_R8: Rotation vector = VT_R8: = VT_R8: = VT_R8: = VT_R8: = VT_R8: = VT_R8: = VT_R8: = VT_R8: = VT_R8: T
OpenCV Provider User’s Guide - 119 - = VT_R8: = VT_R8: = VT_R8: = VT_R8: = VT_R8: = VT_R8: Translational vector = VT_R8: = VT_R8: = VT_I4: Camera calibration ID u fx s v = 0 1 0 X 0 cx r11 r12 r13 dx Y fy cy × r 21 r 22 r 23 dy × Z 0 1 r 31 r 32 r 33 dz 1 Return value None Explanation Set external parameters to database Related item CalibrateCamera, ModifyCamCalEx
OpenCV Provider User’s Guide - 120 - = VT_R8: Translation vector = VT_R8: = VT_R8: = VT_I4: Camera calibration ID u fx s v = 0 1 0 Explanation X 0 cx r11 r12 r13 dx Y fy cy × r 21 r 22 r 23 dy × Z 0 1 r 31 r 32 r 33 dz 1 Get extrinsic parameters from database. If is TRUE, inverse of extrinsic matrix is returned.
OpenCV Provider User’s Guide - 121 - Explanation Update external parameter using the specified image. Related item CalibrateCamera, SetCamCalExtDat, FindChessBoardCorners, SetCamCalDat, GetCamCalExtDat, GetPosFromCam, GetCamCalDat, GetCamPos, GetRobPosFromCam, GetCamPosFromRob, Undistort2 SetRobCalDat Format object.
OpenCV Provider User’s Guide - 122 - GetRobCalDat Format object.
OpenCV Provider User’s Guide - 123 - Return value None Explanation Write camera calibration description into the database. Related item CalibrateCamera, GetCamCalExtDat, SetCamCalDat, GetCamCalDat, GetCamDescription, SetCamCalExtDat, GetPosFromCam, GetCamPos, GetRobPosFromCam, GetCamPosFromRob, Undistort2 GetCamDescription Format object.
OpenCV Provider User’s Guide - 124 - Return value = VT_BSTR : Description Explanation Read robot calibration description from the database. Related item CalibrateRobot, SetRobCalDat, GetRobCalDat, SetRobDescription, GetPosFromRob, GetRobPos, GetRobPosFromCam, GetCamPosFromRob GetPosFromCam Format object.
OpenCV Provider User’s Guide - 125 - GetCamPos Format object.GetCamPos( , , , ) Parameters = VT_R8: X on world coordinate = VT_R8: Y on world coordinate = VT_R8: Z on world coordinate = VT_I4: Camera calibration ID (Default: 0) Return value = VT_R8: X on camera coordinate = VT_R8: Y on camera coordinate Explanation Convert world coordinate to camera coordinate Calibration data of is used to convert.
OpenCV Provider User’s Guide - 126 - GetRobPos Format object.GetRobPos( , , , ) Parameters = VT_I4: Robot calibration ID = VT_R8: X on world coordinate = VT_R8: Y on world coordinate = VT_R8: Z on world coordinate Return value = VT_R8: X on robot coordinate = VT_R8: Y on robot coordinate = VT_R8: Z on robot coordinate Explanation Convert world coordinate to robot coordinate. Calibration data of is used to convert.
OpenCV Provider User’s Guide - 127 - Calibration data specified by and are used for the conversion. When Camera ID=0, following value is used. Image ID Used camera ID Camera(1~10) Image ID Not camera(10~) 1 Set to TRUE for a distored image.
OpenCV Provider User’s Guide - 128 - Undistort2 Format object.Undistort2 , Parameters = VT_I4: Output Image ID = VT_I4: Camera calibration ID (Default: 0) Return value = VT_UI1|VT_ARRAY: Changed image Explanation Adjust distortion. If Output Image ID=0, return value is changed image data. If Output Image Id <> 0, the change image is stored in the specified ID image memory, and return value is Empty.
OpenCV Provider User’s Guide - 129 - = VT_I4|VT_ARRAY: Coordinates list (,) = VT_I4: X coordinates = VT_I4: Y coordinates Explanation The command finds corners with big eigenvalues in the image. Related item FindCornerSubPixEx FindCornerSubPixEx Format object.
OpenCV Provider User’s Guide - 130 - MomentsEx Format object.
OpenCV Provider User’s Guide - 131 - MeasureInfo Format object.
OpenCV Provider User’s Guide - 132 segment is represented by starting and ending points. 2 CV_HOUGH_M multi-scale variant of classical Hough transform. The ULTI_SCALE lines are encoded the same way as in CV_HOUGH_STANDARD.
OpenCV Provider User’s Guide - 133 - = VT_R4: Center X coordinates = VT_R4: Center Y coordinates = VT_R4: Radius Explanation Find circles using Hough transform. Related item HoughLines DFTEx Format object.
OpenCV Provider User’s Guide Explanation - 134 - Perform Inverse DFT(Discrete Fourier Transform). If is 0, then the transformed image is returned. If is not 0, then the transformed image is stored in the specified image memory area, and VT_EMPTY is returned. The changed image data is output by the 8-bit bitmap file format of the Windows standard. Related item DFTEx OpticalFlowEx Format object.
OpenCV Provider User’s Guide - 135 - = VT_R8: Y coordinate = VT_I4: search window size (X) = VT_I4: search window size (Y) = VT_I4: Pyramid level maximum value Return value 0 Pyramid not used (single level). Level is set to 2 1 Set pyramid level to 2 >2 Specified value is set to the maximum level of pyramid.
OpenCV Provider User’s Guide - 136 - FindHomography Format object.
OpenCV Provider User’s Guide - 137 - QRDecode Format object.QRDecode( ) Parameters = Code type 0 CODE_QR Decode QR code Model 1 or Model 2 1 CODE_MICROQR Decode Micro QR 2 CODE_DATAMATRIX Decode DataMatrix 3 CODE_PDF417 Decode PDF417 4 CODE_BARCODE Decode barcode () (UPC/EAN , CODE39 , CODABAR(NW-7) , Interleaved 2 of 5(ITF),CODE128,EAN-128, RSS)をデコード Return value 5 CODE_MICROPDF Decode MicroPDF417 6 CODE_COMPOSITE Decode EAN.
OpenCV Provider User’s Guide Error 0x80101001 - 138 : OCR is not initialized. Please use "OCREnabled=True " Option in AddController.. About the another error, please refer to the capter 2.4. 4.3. Command class 4.3.1. Triangulation Triangulation Format object.
OpenCV Provider User’s Guide - 139 - , , , , , , , , ) Parameters = VT_I4: Camera 1 image number = VT_I4: Camera 2 image number = VT_I4: Camera 3 image number(0: Not used) = VT_I4: Template image number = VT_I4: Matching method (I denotes image, T - template, R - result. The summation is done over template and/or the image patch: x'=0..
OpenCV Provider User’s Guide - 140 - = VT_I4: Search start angle (degree) = VT_I4: Search end angle(degree) = VT_I4: Step angle degree = VT_I4: Down sizing count = VT_BOOL: Distortion compensation flag True Enable distortion compensation False Disable distortion compensation = VT_I4: Triangulation method Return value 0 Liner Singular value analysis 1 Midpoint Center point analysis = VT_R8: X coordinates = V
OpenCV Provider User’s Guide Parameters - 141 - = Camera 1 image number = VT_I4: Camera 2 image number = VT_I4: Camera 3 image number(0: Not used) = VT_I4: Template image number = VT_I4: Threshold = VT_I4: Threshold type 0 CV_THRESH_BINARY 1 CV_THRESH_BINARY_INV = VT_I4: Matching method A means original image and B means template image in the table below.
OpenCV Provider User’s Guide - 142 - = VT_R8: Z coordinate Explanation Compare object shape using two or three cameras, and perform triangulation using the detected coordinate. Each camera and its position need to be calibrated before using this function. Camera image is converted to binary image using Canny filter. Therefore, specify images converted by Canny for image. If two or more cantors are extracted from image, matching may fail.
OpenCV Provider User’s Guide - 143 - Camera calibration and camera position setup need to be performed before executing this command. If is 0, then it calculates from two camera data. Related item ORiN Forum CalibrateCamera, SetCamCalDat, GetPosFromCam, HaarDetect DENSO WAVE Inc.
OpenCV Provider User’s Guide - 144 - 5. OcvTester 5.1. Outline OcvTester is an application using OpenCV provider to perform image-processing process interactively. With OcvTester, you can perform image processing step by step, and show the processed images on different windows. In addition, OcvTester can record and output the performed image processing procedures in CaoScript scripting language.
OpenCV Provider User’s Guide - 145 - 5.2. Main screen Main screen is for operations like setup OpenCV provider, manage each windows and file input/output. Figure 5-2 OcvTester screen 5.2.1. Object window Object window is for camera and memory image management. By double-clicking the object, image window is displayed. 5.2.2. Log window Command execution log is output on this window. ORiN Forum DENSO WAVE Inc.
OpenCV Provider User’s Guide - 146 - 5.2.3. Menu 5.2.3.1. File menu This menu is for saving files. [Export Log] Output log to a file. [Export Script] Output recorded command execution procedure as CaoScript file. [Connect] Connect to DENSO robot. When connecting, DENSO robot connection window is displayed. For details, please refer to5.4. [Disconnect] Disconnect communication with DENSO robot. [Exit] Exit OcvTester. 5.2.3.2. Edit menu This menu is for editing log output and script record.
OpenCV Provider User’s Guide - 147 - Display and hide main screen. 5.2.3.4. Tool Menu This menu is for tool menu display. [Camera Setting] Display camera setting tool. For details, please refer to 5.5 [Triangulation] Displays triangulation window. For details, please refer to 5.6 [Calibration] Display calibration wizard. For details, please refer to 5.6. [Image Samples] Displays image sampling creation tool. For details, please refer to 5.9 [Haar Training] Displays Haar training tool.
OpenCV Provider User’s Guide - 148 - Allign child windows vertically. [Cascade] Cascade chile windows. [Arrange Icon] Arrange minimized window icons. [Close All] Close all child windows. 5.2.3.7. Help Window This window is to display help information. [Version] Display verion information. 5.3. Image window Image window is to display images and perform image-processing command. Command execution procedure is as following. 1. Select command type from tab. 2. Select command from Command combo-box. 3.
OpenCV Provider User’s Guide - 149 - Figure 5-3 Image window [Image monitor] Display image to image window. ORiN Forum DENSO WAVE Inc.
OpenCV Provider User’s Guide - 150 - When left below [*] button is ON, the image is output to main screen. The capture screen is displayed by [=] button in the upper right corner. This function is valid only for the memory area image. Right below [+] button and [-] button is to display and hide image monitor. In some commands, parameter setting by dragging on an image is possible. Following is the list of the command supporting area assignment.
OpenCV Provider User’s Guide - 151 - Repeat command execution. To stop repeated command execution, uncheck Repeat, or click Cancel button. Repeated execution outputs large amount of logs. [Execute] Execute a command. Execute command selected from Command combo. Values set in Parameter property box is used for execution parameter. The execution result is displayed in Result property box. Execution result is output to log window.
OpenCV Provider User’s Guide - 152 - [Ethernet] Use Ethernet to connect to robot controller. [IP Address] Specify robot controller IP address. This parameter is available only when Ethernet connection is selected. [RS232C] Use RS232C to connect to robot controller. [Port No.] Specify COM port number to communicate to robot controller. This parameter is available only when RS232C connection is selected. [Baudrate] Specify baudrate to communicate to robot controller.
OpenCV Provider User’s Guide - 153 - Only “1bit” is available for this item, and cannot be changed. [Variable Range] Set variable range for DENSO robot result output execution. 5.5. Camera Settings window Set camera and image memory size. The setting is effective after restarting OcvTester. The setting is registered in registry. (refer 2.1) Figure 5-4 Camera Setting window [Camera ID] Specify camera ID to setup. [Disable] Checking this item disables camera operation.
OpenCV Provider User’s Guide - 154 - Figure 5-5 Triangulation window [Command] Select execution command. [Parameter] Set command execution parameters. [Repeat] Repeat command execution. To stop repeated command execution, uncheck Repeat, or press Cancel button. Repeated execution outputs large amount of logs. [Execute] Execute command. Execute a command selected from Command combo. Values set in Parameter property box is used for execution parameter.
OpenCV Provider User’s Guide - 155 - 5.7. Calibration Wizard 5.7.1. Overview The wizard is for camera calibration and robot calibration. Calibration wizard supports following four types of calibrations. [Camera] Calibrate camera. CalibrateCamera is called. [Robot] Calibrate robot. CalibrateRobot is called. [Camera attached on a cell & Robot] Calibrate attached camera on a cell and robot. CalibrateCamera and CalibrateRobot is called. Calibration Wizard performs calibration in the following six steps.
OpenCV Provider User’s Guide - 156 - 5.7.2. Step 0: Select calibration target Figure 5-6 Step 0 : Calibration target selection This screen is to select calibration target. For details of each calibration target, please refer 5.6.1 ORiN Forum DENSO WAVE Inc.
OpenCV Provider User’s Guide - 157 - 5.7.3. Step 1 : Set camera calibration parameter Figure 5-7 Step 1 : Camera calibration parameter setting [Camera ID] Specify calibrated camera ID. [Input ID] Specify chessboard image storing destination ID for camera calibration. The images are stored sequentially from the specified ID. [Width] Specify the width (number of colums) of the calibration chessboard. [Height] Specify the height (number of rows) of the calibration chessboard.
OpenCV Provider User’s Guide - 158 - 5.7.4. Step 2 : Acquire chessboard image Figure 5-8 Step 3 : Chess board image acquisition [Current Image] Display image of the specified ImageID. [Image ID] Specify image ID to store acquired image. [Image List] Display a list of acquired images. Clicking an item from the list will display a thumbnail image. [BaseImage] Specify the image ID that is used as a reference (base) image for camera calibration [Add] Add current image to the list.
OpenCV Provider User’s Guide - 159 - 5.7.5. Step 3 : Map world coordinate and robot coordinate Figure 5-9 Step 4 : World coordinate and robot coordinate mapping [Points] Display mapping list of world coordinate and robot coordinate The selected mapping point list is displayed in input item of world coordinate and robot coordinate. [World Point] Specify a point of world coordinate. [NOTE] [Robot Point] Specify a point of robot coordinate.
OpenCV Provider User’s Guide - 160 - [NOTE] In case of 'Camera + Robot' Calibration The left-bottom of the base image (Chessboard) used in the camera calibration is the world origin (0, 0, 0). In case of 'Camera + Robot' calibration, it is easy to use the chessboard for specifying a world point and a robot point. To put it concretely, any points (X, Y, 0) on the chessboard can be specified as a world point. And next, move the robot to the point, and click [GetCurrentPos] to get the current robot point.
OpenCV Provider User’s Guide - 161 - Fig 5-1 Lookup table editor [ID] Specify edited lookup table ID. [Look-up table] Display and edit current lookup table. R,G, B shows hue. [Graph] Show the graph of each hue of current lookup table. [Set] Set edited lookup table. [Close] Exit lookup table editor. 5.9. Image sampling window Create positive image used for Haar training, by using CreateSamples.exe command of OpenCV. ORiN Forum DENSO WAVE Inc.
OpenCV Provider User’s Guide - 162 - Figure 5-11 Image sampling window [Output vec file] Specify created positive file output destination. [Collection file] Specify collection file. Collection file describes a list of image files containing detected images. For detailesof the file format, please refer to the document for CreateSamples.exe. [Image file] Specify detected image image file. [Background file] Specify background image collection file.
OpenCV Provider User’s Guide - 163 - [Background color threshold] Change areas of “Background color” plus/minus “background color threshold” to be transparent. [Inverse] Inverse color. [Random imverse] Randomly inverse color. [Max angle] Specify maximum rotation angle of detected image. [Sample size] Specify created positive image size. [Command] Show executed command in the format of CreateSamples.exe command line. [Run] Execute command displayed in Command.
OpenCV Provider User’s Guide - 164 - Figure 5-12 Image sampling window [Output directory] Specify Haar training result output directory. [Vec file] Specify positive imag4e file. [Background file] Specify background file. [Number of positive samples] Specify the number of positive samples to be used for stage training of each classifier. [Number of negative samples] Specify the number of negative samples to be used for stage training of each classifier. [Number of stage] Specify the training stage number.
OpenCV Provider User’s Guide - 165 - is used. If 2 or more is specified, CART classifier with “Number of split” internal branch node is used. [Memory in MB] Specify the size of memory to be used for calculation. [Weight trimming] Specify the degree of using weight trimming. [Min hit rate] Specify minimum hit rate necessary for each stage classifier. [Max flase alarm rate] Specify maximum false alartm rate reqired for classifiers of each stages.
OpenCV Provider User’s Guide - 166 - Appendix A.
OpenCV Provider User’s Guide - 167 cvCopy Paste cvCreateImage cvGetSize cvCvtColor cvRect cvSetImageROI cvCopy cvConvert cvReleaseImage Rotate cvCreateImage cvGetSize cvCreateMat cv2DRotationMatrix cvWarpAffine cvReleaseImage cvReleaseMat Flip cvCreateImage cvGetSize cvFlip Resize cvCreateImage cvSize cvResize Split cvCreateImage cvGetSize cvSplit cvReleaseImage Marge cvCreateImage cvGetSize cvMerge ConvertGray cvCreateImage cvGetSize cvCvtColor cvCopy cvReleaseImage ThresholdEx cvCreateIma
OpenCV Provider User’s Guide - 168 cvCvtColor cvCopy cvThreshold cvReleaseImage Threshold2 cvCreateImage cvGetSize cvCvtColor cvCopy cvThreshold cvReleaseImage AdaptiveThresholdEx cvCreateImage cvGetSize cvCvtColor cvCopy cvAdaptiveThreshold cvReleaseImage Smooth cvCreateImage cvGetSize cvSmooth cvReleaseImage Sobel cvCreateImage cvGetSize cvCvtColor cvCopy cvSobel cvConvert cvReleaseImage Laplace cvCreateImage cvGetSize cvCvtColor cvCopy cvLaplace cvConvert cvReleaseImage CannyEx cvCreateImage
OpenCV Provider User’s Guide - 169 cvCvtColor cvCopy cvCanny cvReleaseImage WarpAffine cvCreateImage cvGetSize cvCreateMat cvSetReal2D cvWarpAffine cvReleaseImage cvReleaseMat WarpPerspective cvCreateImage cvCreateMat cvSetReal2D cvWarpPerspective cvReleaseMat PreCornerDetectEx cvCreateImage cvGetSize cvCvtColor cvCopy cvConvert cvPreCornerDetect cvConvert cvReleaseImage CornerHarrisEx cvCreateImage cvGetSize cvCvtColor cvCopy cvConvert cvCornerHarris cvReleaseImage CalcBackProjectEx cvCreateImag
OpenCV Provider User’s Guide - 170 cvCalcHist cvCalcBackProject Inpaint cvCreateImage cvGetSize cvInpaint Erode cvCreateStructuringElementEx cvCreateImage cvErode cvReleaseStructuringElement Dilate cvCreateStructuringElementEx cvCreateImage cvDilate cvReleaseStructuringElement PyrDown cvGetSize cvCreateImage cvPyrDown PyrUp cvGetSize cvCreateImage cvPyrUp NOT cvCreateImage cvGetSize cvNot AND cvCreateImage cvGetSize cvAnd cvReleaseImage OR cvCreateImage cvGetSize cvOr cvReleaseImage XOR c
OpenCV Provider User’s Guide - 171 cvAdd cvReleaseImage SUB cvCreateImage cvGetSize cvSub cvReleaseImage MAXEx cvCreateImage cvGetSize cvCvtColor cvCopy cvMax cvReleaseImage MINEx cvCreateImage cvGetSize cvCvtColor cvCopy cvMin cvReleaseImage ABS cvCreateImage cvGetSize cvAbsDiff cvReleaseImage Line cvCreateImage cvGetSize cvCopy cvLine cvPoint cvReleaseImage Line2 cvCreateImage cvGetSize cvCopy cvLine cvPoint cvReleaseImage Rectangle cvCreateImage cvGetSize ORiN Forum DENSO WAVE Inc.
OpenCV Provider User’s Guide - 172 cvCopy cvRectangle cvPoint cvReleaseImage Circle cvCreateImage cvCopy cvCircle cvPoint cvReleaseImage Ellipse cvCreateImage cvGetSize cvCopy cvEllipse cvPoint cvSize cvReleaseImage Sector cvCreateImage cvGetSize cvCopy cvLine cvEllipse cvPoint cvSize cvReleaseImage Cross cvCreateImage cvGetSize cvCopy cvLine cvPoint cvReleaseImage Text cvCreateImage cvGetSize cvFlip cvInitFont cvPutText cvPoint ORiN Forum DENSO WAVE Inc.
OpenCV Provider User’s Guide - 173 cvReleaseImage FindContoursEx cvCreateImage cvGetSize cvClearMemStorage cvFindContours cvReleaseImage CopyContours cvBoundingRect cvReleaseImage cvRect cvSetImageROI cvCreateImage cvGetSize cvCopy ContoursNumber cvPointPolygonTest PointPolygonTest cvPointPolygonTest BoundingRect cvBoundingRect FitEllipse cvFitEllipse2 ArcLength cvArcLenth CheckContourConvexity cvCheckContourConvexity FindBlobs - BlobsFilter - BlobResult - BlobResults - BlobEllipse
OpenCV Provider User’s Guide - 174 cvCreateMat cv2DRotationMatrix cvWarpAffine cvBoxPoints cvMatchTemplate cvMinMaxLoc cvSeqPush cvSeqSort cvGetSeqElem cvClearSeq cvReleaseImage cvReleaseMat cvReleaseMemStorage BlobMatchShapes cvCloneImage cvCreateMemStorage cvCreateImage cvCvtColor cvCopy cvClone cvFindContours cvBoundingRect cvSetImageROI cvClearMemStorage cvFindContours cvMatchShapes cvFitEllipse2 cvReleaseImage cvReleaseMemStorage CalcHistEx cvCreateImage cvGetSize cvCvtColor cvCopy cvCreateHist cv
OpenCV Provider User’s Guide - 175 cvReleaseImage NormalizeHistEx cvCreateHist cvSetReal1D cvNormalizeHist cvQueryHistValue_1D cvReleaseHist ThreshHistEx cvCreateHist cvSetReal1D cvThreshHist cvQueryHistValue_1D cvReleaseHist EqualizeHistEx cvCreateImage cvGetSize cvCvtColor cvCopy cvEqualizeHist GetMinMaxHistValue cvCreateHist cvSetReal1D cvGetMinMaxHistValue cvReleaseHist HistAve ‐ AutoThreshPTile ‐ AutoThreshMode ‐ AutoThreshDiscrim ‐ MatchTemplate cvCreateImage cvSize cvMatchTemplate
OpenCV Provider User’s Guide - 176 cvTermCriteria cvCamShift MatchTemplate2 cvCreateImage cvCopy cvGetSize cvResize cvSet cvSetImageROI cvResetImageROI cvCreateMemStorage cvCreateSeq cvPoint2D32f cvSize2D32f cvCreateMat cv2DRotationMatrix cvWarpAffine cvBoxPoints cvMatchTemplate cvMinMaxLoc cvSeqPush cvSeqSort cvGetSeqElem cvClearSeq cvReleaseImage cvReleaseMat cvReleaseMemStorage MatchShapes2 cvCreateMemStorage cvCreateImage cvCvtColor cvCopy cvClone cvFindContours cvBoundingRect cvSetImageROI cvClear
OpenCV Provider User’s Guide - 177 cvMatchShapes cvFitEllipse2 cvReleaseImage cvReleaseMemStorage HaarDetect cvLoad cvCreateMemStorage cvHaarDetectObjects cvGetSeqElem cvReleaseMemStorage CalibrateCamare cvCreateMat cvCalibrateCamera2 cvRodrigues2 cvMat cvMatMul cvInvert cvSetReal2D cvGetReal2D cvSet2D cvReleaseMat cvCreateImage cvFindChessboardCorners cvCvtColor cvFindCornerSubPix cvReleaseImage CalibrateRobot cvCreateMat cvmSet cvSolve cvReleaseMat FindChessBoardCorners cvFindChessboardCorners D
OpenCV Provider User’s Guide - 178 cvPoint cvReleaseImage cvFlip cvInitFont cvPutText SetCamCalDat - GetCamCalDat - SetCamCalExtDat - GetCamCalExtDat - SetRobCalDat - GetRobCalDat - GetPosFromCam cvCreateMat cvmSet cvmGet cvMatMul cvReleaseMat GetCamPos cvCreateMat cvmSet cvmGet cvMatMul cvReleaseMat GetPosFromRob cvInitMatHeader cvCreateMat cvmSet cvmGet cvMatMul cvReleaseMat GetRobPos cvInitMatHeader cvCreateMat cvmSet cvMatMul cvmGet cvReleaseMat Undistort2 cvInitMatHeader cvCreate
OpenCV Provider User’s Guide GoodFeatureToTrackEx - 179 cvCreateImage cvGetSize cvCvtColor cvCopy cvGoodFeaturesToTrack cvReleaseImage FindCornerSubPixEx cvCreateImage cvGetSize cvCvtColor cvCopy cvFindCornerSubPix cvSize cvTermCriteria cvReleaseImage MomentsEx cvCreateImage cvGetSize cvCvtColor cvCopy cvMoments cvReleaseImage MeasureInfo ‐ HoughLine cvCreateMemStorage cvHoughLines2 cvGetSeqElem cvReleaseImage cvReleaseMemStorage HoughCircles cvCreateMemStorage cvHoughCircles cvGetSeqElem cvRelea
OpenCV Provider User’s Guide - 180 cvZero cvMerge cvDFT cvPow cvAdd cvReleaseImage IDFT cvCreateImage cvMerge cvDFT cvSplit cvConvert cvReleaseImage OpticalFlowEx cvCreateImage cvGetSize cvCvtColor cvCopy cvCalcOpticalFlowLK cvReleaseImage BoxPoints cvBoxPoints FindHomography cvCreateMat cvmSet cvFindHomography cvmGet cvReleaseMat ORiN Forum QRDecode ‐ OCRead - DENSO WAVE Inc.
OpenCV Provider User’s Guide - 181 - Appendix B. uVision21 equivalent OpenCV method Table B-1 uVision21 function equivalent OpenCV method list Vision function Function OpenCV provider equivalent method identifier CAMIN Store image from camera in image memory File::put_Value = File::get_Value (processing screen). CAMMODE CAMLEVEL Set functions for storing camera image in Not implemented image memory. (Camera setting should be changed) Set camera image input level.
OpenCV Provider User’s Guide - 182 command. WINDREF Get window information File::Execute GetROI command WINDDISP Draw the setup window Execute SetROI then execute Copy command. VISSCREEN Specify drawing screen. Because two or more of File object can be generated, the output image can be arbitrarily set with the client. VISBRIGHT Specify the luminance for drawing. Not implemented (Brightness can be set on camera side.
OpenCV Provider User’s Guide - 183 AutoThreshPTile AutoThreshMode AutoThreshDiscrim VISBINA Binalize the screen. Following command in File: Execute ThresholdEx Threshold2 VISBINAR Display the binarized screen image. Following command in File: Execute ThresholdEx Threshold2 VISFILTER Apply filter on the image. Smooth command of File::Execite VISMASK Mask operations Mask system command of File::Execite (AND and OR, etc.) VISCOPY Copy screen.
OpenCV Provider User’s Guide SHCLRMODEL - 184 - Clear registered model data. The image is cleared by setting EMPTY to File::put_Value. The screen is painted out by specifying the entire screen in Rectangle command of File::Execute, and set the thickness of the line as -1. SHDISPMODEL Display registered model on the screen. Get_Value SHMODEL Search model Following command in File: Execute TemplateMatch HaarDetect MatchEx SHDEFCORNER Set condition for corner search.
OpenCV Provider User’s Guide - 185 - Appendix C. Intel License Agreement For Open Source Computer Vision Library Copyright © 2000, Intel Corporation, all rights reserved. Third party copyrights are property of their respective owners. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistribution's of source code must retain the above copyright notice, this list of conditions and the following disclaimer.