// file: changes.txt // changes in VisionLab since V3.02 // Jaap van de Loosdrecht // Van de Loosdrecht Machine Vision BV // www.vdlmv.nl -------------- V3.47b --------------------------------------- October 2019 - now - GetImageProperties moved to util - Added operators MC1stLogDerivative MCAvgPixel FlatFieldCorrectionLine2 MC1stDerivative2 MC1stLogDerivative2 - WIN32 defines removed from VS projects - image.h, Class Image: imageSize and nrPixels redefined to Int64 -------------- V3.47 --------------------------------------- January 2018 - October 2019 - Plugin interface updated to v2.1 - Fix at server side for displaying image with witdh=1 and height=huge - Update OS for Delphi development - Fix in client for displaying NrChans instead of last function result in info bar - Operator ShiftPixel added - Bug fix in GUI for not displaying operator timing info due to adding mcgetnrchans for caption of image - Python interface updated to 3.6.6 for both Win10 and Linux - Vislibcm.h: CamInstallCmd changed in using std::function - Visual Studio updated to 15.8.5 - html help: header files added with correct code identation - gcc 7.2 for x64 Linux - ARM64 version added for gcc-linaro-7.2.1 - softkey for Jetson TX2 - class Image alfaChan and HasAlfaChan added - Python interpreter added - Added PyStart, PyStop, PyExec, PyEval, PyExecFile, PyImageToNp and PyNptoImage - allowing '=' with in "string" without interpreting assignment - Operators MCCloneNrChans, MCGetNrChans and MCSetNrChans added - GUI Image attributes: NrChans added - MCViewers adapted for NrChans - JL file format extended for Multi Channel (MC) images - Added Utils::StripDoubleQuotes - vissvr, default maxHisSize set to 0 - GUI: py editor added - PyImageToNp and PyNptoImage extended for MC images - System command added to Linux port - Bug fix in auto reduce GUI image, minimum height/width set to 1 pixel - Operators FlatFieldLine and FlatFieldCorrectionLine added - GetImageProperties added to pluginenv.h - Added MCFromBil and MCReadENVI operators - Edit read-only support for RGB16, YUV16 and HSV16 images - Added oparators lRead_BMP, lRead_JPG, lRead_PNG, lWrite_PNG - Added operators MCReadENVI and MClReadENVI, only support for BIL format - FilDropCam support added for ENVI and png - GUI Client open file support added for ENVI, png and npy - (l)Read/Write_PNG adapted to big endian - script operators (l)ReadNumPyu and (l)WriteNumpy added - operators PyCMD and PyPWD added - Util.cpp VectorStrToVectorInt added - MCContrastStretch added - pluginenv.cpp added to Linux version - GDal removed, direct support for envi files - bugfix in FindFastLines for multiple lines around -pi/2 and pi/2 - correct error message for client functions that do not support MCOneChan images - "MC" displayed in Caption for MC images - (l)ReadNumPy extended with Default parameter for ImageType - GUI Image attributes OK = refresh image, needed for change of NrChans from/to 1 - GUI Options OK = refresh all images, needed for change from MCImage Raw to/from OneChan - Operator MCROI2Points added - MFCam support for NV12 format added -------------- V3.46 --------------------------------------- august 2017 - january 2018 - html help: header files added with correct code identation - ReadGeoTiff, ReadChanGeoTiff, WriteGeoTiff renamed to ReadGDAL, ReadChanGDAL, WriteGDAL - HSIViewer and MCViewer added - In client TServerInterface.DisplayGammaToImage added - GUI: MCROI top and left parameters renamed to x and y (top and left where in wrong order) - Attributes form: size replaced bij height*width - In caption PicForm added Reducefactor - OptionsForms added MaxHeightImage and MaxWidthImage - Automatic update of ReduceFactor for image if image exceeds MaxHeightImage, MaxWidthImage or 1Gb - Memory leak fixed in libpngDDSL.c for read and writing *.png - Memory leak fixed in Write_BMP - ReadGeoTiff, ReadChanGeoTiff, WriteGeoTiff renamed to ReadGDAL, ReadChanGDAL, WriteGDAL - Read_PNG and WritePNG added - Bug fix in conversion OrdImage to XXX161616Image - Bug fix in BlobMatcher.FindPatterns for blob with size=1 and non sequential label numbers - Bug fix in (html) help for ordoper.h - Updated Softkeygen and Softkeyutil for automatic last version number - Binning optimized - BinAbove operator added - Binning removed out of GeoImagesToCSV - Bug fix in both GUIs for error message if script operator file can not be found - html help file: header files included - Nagle disabled in TCP/IP server and both clients - Reuse sockect enabled for server - Cmds inserted with override == true in cmdssvr.cpp and cmdstest.cpp - Operator HawkEye added - Ordoper::Warp returns bool - Added cmds WaitMilliTimeStamp and WaitMicroTimeStamp - FindSubEdgesInScanLines and FindSubEdgeOnLine added std::abs and init bug secondtab[1] fixed - Parameter FalseColorStretch added to ConvertToFalseColor - Operator RangeToFalseColor added - SetToZeros moved from Intoper to Numoper - Bugfixes for Convert(XXX161616Image, xImage) - Added FloatToExactStr to Util - UPdated to IDS camera interface 4.80.2.1 - Bugfix in PylonCam::SetCamROI(const CamROI &roi) - Write_BMP write successfull check added - Delphi client bug fix for small "toggeling size" images - Delphi XE6 client bug fix for dynamic combo box - GDAL operators added: GeoImagesToCSV, GeoImageToWorldCoord, ReadGeoTiff, ReadChanGeoTiff, WriteGeoTiff - Vegatation index operators added: NDVI, NDRE - Multi-channel operators added: MC1stDerivative, MC2ndDerivative, MCCreate, MCDemosaic, MCGetChan, MCGetChans, MCGetPixel, MCHeightWidth, MCMerge, MCNDVI, MCReoder, MCROI, MCSelect, MCSetChan, MCSetChans, MCSetPixel, MCTile, MCZoom, MCZoomXY -------------- V3.45 --------------------------------------- september 2014 - january 2016 - Nagle algorithm disabled for socket communication - Traffic limit on socket communication disabled - Watershed optimized - Warp returns bool, is false if 3 or more coordinates are (almost) in line. - Added operator RefineCornersRectangle - Bugfix for traffic limit removal - Debug fix in FindFastCircle in std::sort, if elms equal compare must return false - MPCalib: bug removed for negative scale factor - Updated to IDS uEye version 4.50 - Bug fixes in TestSameCoord2D and TestSameCoord3D - Bug fixed in regression test module basic.jls for FindEdgeLine - Command language extended for assign to coordinates without "", like $c = (12.34,56.78) - Added ForEach command - Added operator TextOnImageCoord2D - Added operators GetAffinityMask and SetAffinityMask - Bugfix in LocalHistogramEqualize - Odroid C1 version - Bugfix in StopWatch::GetTimeStr - Raspberry 2 version - ELP usb cam interfaced - SoftKey for Odroid and Raspberry Pi (2) - First port to VC Nano - testlastanswer command: added difference for big strings - Updated to IDS uEye driver 4.72 - Html help - Odroid XU4 version - Changed to MSVS15 - no x86 support any more in standard distribution, but is available on request - Read_BMP for both 24 and 32 bits - New upwards compatible plugin system, also for Linux - Extra helper functions for MFCam added - Beta version Pylon interface for Basler cameras - Affinity mask added to Multi Core Calibration GUI: - Nagle algorithm disabled for socket communication - Traffic limit on socket communication disabled GUI NG: - adapted for Nagle - removal of traffic limit - high dpi manifest file (dpi.manifest) added to XE6 NG prj - Splash screen scaled property disabled -------------- V3.44 --------------------------------------- september 2013 - september 2014 - Added: Mask::Mask (const int h, const int w, const int x, const int y, const Value v) - Updated to IDS uEye version 4.30 - beta IDS uEye (4.30) for Linux x86 and x64 - Added IDS uEye color mode: RAW_8, RAW_10, RAW_12, MONO_8, MONO_10, MONO_12, RGB_8, RGB_10 and RGB_12 - Added Abs operator - Added ContrastStretchLUT1Channel - Added ContrastStretchLUT3Channels - Added operator ContrastStretchLUT3Channels - Added operator Merge1Channel - Bugfix in displaying RGB161616Image, HSV161616Image and YUV161616Image - Default value for approxPolygonMinDistance (GrayscaleBlobAnalysis modifier) is changed from 1 to 10 - Convolution extended for use with complex and color images - ConvolutionFFT extended for use with complex and color images - Added operator LocalHistogramEqualisation - Added Exception handling in OpenMP sections - OpenCL bugfix in adminstration of Buffers and image2Ds - OpenCL interface extended with commands CL_SupportAtomCounters and CL_SupportExtension - OpenCL commands WaitForEvent(s) extended with SpinLock option - Bugfix for error handling in OpenMP paralellized operators - FastRandom added - SetToZeros added - Watershed added - New implementation of SeparateBlobs, note no connectivity parameter is used anymore GUI: - Bugfix Snapshot 16 bit color images - Beta version for new GUI -------------- V3.43 --------------------------------------- september 2012 - september 2013 - camera interfaced added to SWIG - bug fix: for loop did not accept DOWNTO in upper case - bug fix: RGB161616 to Int32 conversion - buf fix: BlobMatcher ReadFromFile cmd - Enhanced Multi Core Processing calibration procedure - OpenCL toolbox extended with new commands, see course material - Ordoper::Warp: check coords in line added - Command and operator WarpCoordsValid added - div operator for $vars added,both parameters are interpreted as integer numbers and the result is a integer number converted to a string - Windows 8 version - Dongles support for Windows 8 - Src cleared from #ifdef __TI_COMPILER_VERSION__ - Src cleared from #ifdef BI16I32RGB8HSV8 - Src cleared from #ifdef ST_ILF - Src cleared from #ifdef MiniLab(2) - compiler.h: #pragma warning reorganised - Added Util::ValidEnumStr - Added RemoveBlobsExp - Added RemoveGrayscaleBlobsExp - Added RemoveLabelsExp - Added RemoveGrayscaleLabelsExp - Added BlobAnalysis tool AreaHoleRatio - Visual Studio 2012 version - Bug fix in CamDistortion - Bug fix in PlugInEnv::PlugInCmd - Static code analyse check Visual Studio 2012 - Interface to Microsoft Kinect SDK added - Use Visual Studio 2012 update 3 - bug fix: Removed "not found" label in BlobMatcher::FindPatterns - VisLibCmdInt::GetImage (const string &imageName, XXXImage &image) added - High resolution timing function for Linux added - Image logger tool added with commands - InitImageLogger - CloseImageLogger - ImageLoggerAdd - ImageLoggerClear - ImageLoggerSaveToFile - ImageLoggerGetNth - Bug fix ConvertToFalseColor, first and last LUT elements were not used - VisLibCmdInt added to SWIG framework - Dongle support for Linux x32 and x64 - Dongle error messages improved - Updated to IDS uEye version 4.22 - methods affected by 4.22 update: BuildSceneMode(), BuildGamma() - Changed 'Saturation' to 'SaturationIDS' in enum Camera_Setting - Minor changes in CamsInfo to support new USB 3.0 UI-3370 CP camera - fixed bug in SetColorConverter() GUI: - buf fix: StartLocalServer command: current working directory is saved - 2nd status bar enlarged - Clear server log command added -------------- V3.42 --------------------------------------- october 2011 - august 2012 - FindCornersRectangleSq modified to handle objects touching borders - Updated to Intel OpenCL V1.5 - IDSCam added to Example framework - Command System added - Command GetLastTime added - Command ReplaceStr added - Command DuplicateBackSlash added - Command GetProcessPriority added - Command SetProcessPriority added - Command HostName added - JL_VisionLib_DLL example enabled for OpenMP - IDS camera native VisionLab header files added to distribution - SetBuf member function added to class Image - Operator NormaliseRGB added - Default process priority set to high - static data member MAXValue added to class HSV161616Pixel - Operator NormaliseHue added - bugfix in IDS native interface for triggering 2 cameras - windows server logs x86 or x64 version - Command SetNrThreads return previous nr of threads - command GetKernelWorkGroupInfo added for OpenCL - bugfix local vars followed by ',' - Command Quote added - bugfix local vars in vectors like ($$h,$$w) - bugfix for local var name clash - added CalibrateTimerOverhead - bug fix for CL_WriteBuffer Int - tmaskope.tpg: redundent colour and complex types removed - bugfix in BPN Optimize - operator CalcHistogram0 and command Histogram0ToArray added - GetPatternMatcher operator added in cmdsmatch.cpp and VisLibCmdInt - GetCFS operator added in cmdsbpn.cpp and VisLibCmdInt - GetCIS operator added in cmdsbpn.cpp and VisLibCmdInt - Command GetParamsInfoFromCamera added - Command AvialableFonts renamed to AvailableFonts - Ximea camera interface added - Multi core implementation of BlobMatcher::BestMatch BlobMatcher::AllMatches BlobMatcher::EvaluateClassImageSet BlobMatcher::FindPatterns FindBlob - Added commands InitArray, IsEqualArray, IsSameArray, TestEqualArray, TestSameArray and SubArray - Operator ThresholdIsoData optimized - Added Microsoft Media Foundation camera foundation interface, note: from Windows 7 upwards - Bugfix in timer calibration - first time splash up screen adapted from fsOnTop to fsNormal - bugfix in IDS ueye camera interface for gain factors - extra camera parameter with free string added and value - bug fix in FastHoughLine transform - FastHoughCircle transform extended: parameter ObjectBrightness changed to CircleBrightness - If autoStartScript == "stopafterautostart.jls", script is started and after completion no server is started and process stops. This feature facilitates profiling NVIDIA OpenCL. - OpenCL: support added for Pinning and UnPinning images - StrToNDRange and WaitEventList added to OpenCL.cpp - CheckRefToVar added to cmdinter.cpp - Multi core implementation LabelBlobs - New and faster sequential version LabelBlobs - Multi core implementation for FindHoles and FillHoles - Multi core implementation for RemoveBorderBlobs and RemoveBorderLabels - updated to IDS uEye V4.01 - XIMEA camera interface added - beta version for SWIG interface GUI: - bugfix for handling &$%p1 in local scripts - convolution form resizeable - adapted for scaleable fonts, tested on Windows 7 with 100% and 125% fonts - bugfix local vars followed by ',' - dirty astrix added for +, - and c button in script and notepad - extra check for spaces in camera name added for add camera in camera setup form - CamSetUp form modified to reflect new cam params after OnePush button, Snaphot and Contigious Snaphot - CamSetUp form: automatic correction for invalid ROI sizes - One generic camera specification in ini file for each camera interface - CamSetup form: correct rounding of minimal and maximal parameter values - Bugfix ListVar form: value longer than 1000 chars are truncated - Bugfix removed in CreateCIS form in Display image with width or height = 1 -------------- V3.41 --------------------------------------- august 2010 - september 2011 - multi core implementation now for 160 algorithms - x64 port, for portability unsigned int replaced by size_t - Example solution restructured - updated to Firepackadge V3.0 - NumImage::SetBuf added - Bugfix in RemoveGrayScaleLabels for background - cmds GetNestedParallel and SetNestedParallel added - Bugfix in ConvertCFAToRGB888Image for "last blue line" - timer command lastValue returns time in micro second without '.' - improved error msg for FastRGBToHSV and FastRGBToYUV - bug fix in coord.cpp NearestPoint and DistanceSQ - operator FindCornersRectangleSq added - operator ApproxPolygon added - performance of FastRGBToHSV and FastYUVToHSV improved by factor 2 - Image::Clear() added - operator DrawPolygon added - GenAlgFP* GetGenAlgFP (const string &gaName) added - BPN* GetBPN (const std::string &bpnName) added - operator MinimumFilter optimized - operator MaximumFilter optimized - operator LowestButZeroPixel added - operator IsTheSameFloat added - operator Blob::IsTheSame added - operator IsTheSame(BlobTab,BlobTab,dev) added - buf fix in FixEdges for right botom pixel - BilinearInterpolation modified for last line - automatic operator parallelization for multi core processing added - added commands: CalibMCPOp, CalibAutoMCP, DefaultMCPCalib, GetAutoMultiCore, GetMCPCalibTab, GetMCPOp, GetMCPGain, GetMCPImageSize, GetMCPThreshold, GetNestedParallel, GetNrCores, GetNrThreads, NrOfPhysicalCores, ReadMCPCalibTabFromFile, SetAutoMultiCore, SetMCPGain, SetMCPImageSize, SetMCPThreshold, SetMCPOpVals, SetMCPOp, SetNestedParallel, SetNrThreads, WriteMCPCalibTabToFile - Class Lexicon added, new commands: CLX_AddWord, CLX_Clear, CLX_CreateClassLexicon, CLX_Delete, CLX_FindBestWord, CLX_GetWords, CLX_NrClasses, CLX_NrWords, CLX_RemoveWord, CLX_Rename, CLX_ReadFromFile, CLX_WriteToFile, CLX_AddRawWord, CLX_CreateRawClassLexicon CLX_FindBestRawWord and CLX_RemoveRawWord - operator StrToPixels added - bug fix for GetScriptNameCFS XXX161616Image - bug fix for SeperateBlobs when blobs touch borders - bug fix for (l)pwd, removed at end of result - bug fix for LabelAnd - improved Confidency calculation for BPN - bug fix in BlobMatcher::FindPatterns for images with "removed labels" - Added new BlobAnalyse tools: EllipsFit, ExCircleCentre, ExCircleC1, ExCircleC2, ExCircleR, InCircleCentre, InCircleC1, InCircleC2, InCircleR, MaxCord, MaxCordC1, MaxCordC2, HeightWidthRatio and LengthBreadthRatio - added IDS uEye native interface - updated to IDS V3.82 (native and GenICam) - added Kinect interface using OpenNI - prelimenary version of OpenCL interface commands added for AMD, NVIDIA and Intel - cmd GetSizeOfVector added - CmdInterpreter::SubstituteVars extended to handle NDRange vectors like: ($v1,$v2) - Util::GetRefVarName added - Util::Int64ToStr added - macros EnumStrIOFunctions added to util.h - bugfix in example UserSetall in useroper.cpp - bugfix in RemoveBlob, connectivity = NotConnected after operation - improved error message if empty string is found where a string for an enum is expected - improved error message for cwd command - improved error messages for internal scripts - GenAlgFP constructor modified to acccept nr of traces larger the population size - bugfix in BlobAnalyse::BAGen(Bin)ROITab for images with "missing labels" - error messages in icall improved - added 'missing label' regressie test - call to auto startup script is moved after installing user operators - bugfix in BlobAnalyse for calculating maxXMinY, maxXMaxY, minXMinY and minXMaxY - bugfix in HistogramROI is nr of selected pixels = 0 - popup screen subpression with startup for specific client - improved error message if vcomp90.dll is missing, using delayed dll loading - improved error message if wrong version of MCP calibration file is found - typename added in typename XXXImageT::PixelType(YYY)) constructs GUI - SaveAs for BMP type file will save image with original size - Ok button from Current Server window removed, used connect button - Multi Core Proccessing form added - Start local server window: extra start and connect button addded - GUI added for multi core calibration - *.cfs added to file save (as) dialog - size of StringList form increased - script editing improved for adding command after assignment - improved handling of { characters in result strings - extra attention for error messages in red color - Notepad form for *.txt and *.cl files - minmizing and/or maxmizing of serveral forms disabled - Create BlobMatcher, stay in Create tab if user specifies invalid parameters - BlobMatcher, Find tab, double click pattern table: reduction factor 2nd selected is inherited - bugfix in layout CameraSetup form with more then 30 parameters - done button disabled during Calibrate OpenMP - F1 help activated for MCP form -------------- V3.40 --------------------------------------- september 2009 - july 2010 - random sample algorithm of BlobMatcher improved - server side help VarToFile corrected - IsServerScript command added - bugfix in lFileNamesInDir is no files are found - bugfix in SeperateBlobs if all blobs are removed - commands HistogramToArray and HistogramROIToArray added - command Coord2DToXYCoord added - command PolarLinesIntersection added - bugfix HTBestLines for lines at borders - commands IsSameVar and TestSameVar added - command FindCornersRectangle added - extra checks added in Warp in order to check if 3 or more coordinates are in line - beta version for GenCam and GenTL added - all CameraBase::GetXXXXXParam changed to aks current value from camera - JL_VisionLibCmdInt.cs added, new wrapper around VisionLib for .Net This is now the preferred way to interface VisionLab with .Net. The old way by using JL_VisionLib_Net.dll is now deprecated and no longer supported - updated to FirePackadge 2.11 - beta version for MS Visual Studio 2008 - command FindSubEdgeOnLine added - commands IsSameCoord2D, TestSameCoord2D, IsSameCoord3D and TestSameCoord3D added - commands ResampleLine added - Visual Studio 2008 optimizer settings improved - Create CIS window, no check size msg addded - timer command extended with parameter lastValue - bugfix for ExactDistanceT and VectorDistanceT for objects at left border - addapted for displaying float and complex images in hostorder endian - Matrix Vision Blue Cougar version - bugfix in BlobMatcher::FindPatterns if not all labels are present in image - operator find SubEdgesOnLines added. - autostart script option for server - updated to IDS uEye driver 3.70 - updated to SmartKey driver 12.0 - MSVC03 and MSVC05 defines removed from projects - obsolete WIN98 PortIO cmds removed - _USE_32BIT_TIME_T restriction removed from 32 bit version - dongle check improved - obsolete GenSoftKey cmd removed - added commands: CalibrateAutoMultiCore, GetAutoMultiCore, GetMultiCoreThreshold, GetNrCores, SetAutoMultiCore, SetMultiCoreThreshold and SetNrTrhreads - multi core algorithms for (beta version): Canny Convolution GaussianFilter LoGFilter MarrHildreth NrOfNeighbours Robinson Sobel Scharr Threshold GUI - after break or single step and redisplay image focus back to script - BlobMatcher, FindPattern GUI, bugfix in display of Pattern Table if not all pattern are found - iCallX added to menu - Bugfix in Exit, no more 2 times asking for closing modified scripts - Error msg added if version of software has missmatch with demo license - Bugfix in Convolution form, mask is now directly updated is ancor point is changed - Auto startup script is minimized after startup - Command CloseImage added - Floating point camera parameter addapted to accept min = max values (!= 0) - BPN_EvaluateImage added to ini file - BPN_EvaluateImageSet entry corrected in ini file - IsServerScript cmd entry added to ini file - ini file corrected for caption of Sqrt command - size form of internal scripts corrected - server option form: multiple server choice added - start local server form added - info messages improved for (dis)connection to server - TServerInterface.HandleComError: Sleep added before reconnect - time and date commands moved from menu script to menu system - addapted for displaying float and complex images in hostorder endian - widgets added for circle and line tools - multiple client option implemeted - bugfix for multiple active ROIForms - in order to accept $vars in double click in script SpinEdits are converted to Editboxs - after each single command Variable Window is synhronised - improved error handling for performing operator on Variables window -------------- V3.39 --------------------------------------- september 2008 - august 2009 - rouding problem fixed in Coord2DToXYCoord - bug fix in FindSubEdgesInScanLines for scanlines without absolute maximum - StringToHex and HexToString moved to util.cpp - password protection for scripts added - commands callX, lCallX, addScriptX and lAddScriptX added - fileDropCam extended for password protected scripts - LoG fixed for bug in [Sonka] - confidence calculation for classifers addapted - added cmds bpn_classifyimageoutputtab, bpn_classifyfeaturesoutputtab and bpn_classifyselectedfeaturesoutputtab - Get/SetLayer added to BPN - SwapAxis operator added - Sgn operator added - Auto startup script on client added - handling of empty $tab improved in "VarToArray &$tab[0] &$elm" - Read/Write_BMP added - plugin framework added - bugfix in IsoData calculation - Distance transfer: implementation restriction removed that blobs should be at least at one pixel distance from the border of the image. Note: Euclidean DT still has this restriction. - Check on nr of pixels added for all BPN image classify operators - timer implementation Linux (1 ms) and high performance counter independent of power mode for Windows - updated to FirePackage 2.10 - port to ARM, beta for Festo SBOC - port to PPC processor, beta for Matrix Vision Blue Cougar - Exact and Vector Distance Transform added - FindFirstEdges and FindFirstTransition added - new and faster implementation for RandomInt - first implementation of BlobMatcher - CIS addapted to accept images with different height/width - Blob matcher added - MapAxis operator added - Camera GetParams operator added - Modulo operator added - ModuloPixel operator added - Power operator added - PowerPixel operator added - BPN Optimizer added - Operator FindBlob added - Operator FindPatterns added - Operator SeparateBlobs added GUI - extra checks added to lwrite - filedrop cam, extra wait added for file to be closed - client addapted to handle display images from big endian servers - lArrayFromFile and lVarFromFile updated to use $vars - bugfix: toolbox setting are not saved if serverlog is disabled - ROI form enlarged after involing with double click in script - Synchronise button added to variables window - Speeding up displaying of pictures - Close all files, after confirmation no cancel option for scripts - Cam setup form extra parameter for stopping continuous snapshoting - Bugfix for reusing exactly the same (not automatically generated) image names - Bugfix for correctly handling missing parameters in saving ini file - After drag and drop the directory used is set as default direcory for file open - Classify tab for BPN extended with output values - scrollwheel fix added in DisplayPic -------------- V3.38 --------------------------------------- september 2007 - june 2008 - beta version for Toshiba-Teli dcams added - updated to FirePackadge 2.9.1 - Bugfix for $uppercase_var = lpwd - Bugfix for image.GetHistory for image with empty history - check added for "empty" $var name like "$" - GetNthFromVector, range test for nth added - FloatToStr precision changed to 10 characters - sum/transitions rows/columns default lut changed to Stretch - Warp, coordinates changed from XYCoord to Coord2D - FindEdgeLine and FindEdgeCircle added - NumImage.CheckCoord added - added void LineXYToCoords (const XYCoord &startOrg, const XYCoord &endOrg, XYCoordTab &tab); - added void LineXYToCoords (const LineXY &xy, XYCoordTab &tab); - Binning operator added - bug fix in Histogram::IsoData() for images with negative values - Interface for Fitness script for GA changed using array's - FitnessAll cmd added - Find in $var added - ArrayToFile, ArrayFromFile, LArrayToFile and LArrayFromFile added - check added in GenAlgFP that trace <= populationSize - (GrayScale)BlobAnalyseArray return -1 if there are no labels - no spaces allowed in: $x = ($$local) expressions - (l)(i)call cmds extened to allow indirect calling like call $proc_name - ChangeImageName adapted to handle newName = oldName - FileDropCam: look ahead added and more robust if file read error - streaming operator for ClassTab and FeatureNameTab sort result on idnr - bugfix for for statement, DO keyword is now case insentitive too - labeling image extended for images with width of 1 pixel - *display protocol changed: reducefactor added as first parameter - cmdscam.cpp creates dynamical 2nd level cmdintepreter for camera cmds - Kuwahara filter addded - bugfix for FixEdges in lower edge region - SNN_Mean en SNN_Median Filter added - TransitionsColums and TransitionRows added - (Grayscale)BlobAnalysisArray added - cmds for genetic algorithm added - genalgfp.h: FittnessCmd renamed to FitnessCmd - bugfix in calculation of standard deviation for histograms with negative indexes - bugfix in calculation of median for histograms - bugfix in BlobAnd and LabelAnd for maskImage which is not binary or labeled - Roundoff problems fixed for FloatPixels in MeanFilter, SigmaFiter and VarianceFilter - improved error handling on variablenames with only $ sign - MinLabel, MaxLabel, MinMaxLabel operators added - FindBestLines and FindFastBestLines added - Precision of Hough Line transforms improved GUI: - GUI addapted for standard layout forms of Vista - identing improved for spliting lines - improved displaying of images with height of width = 1 and reduce > 1 - bugfix in feature bpn in order to handle features with same value in all vectors - bugfix in open/save bpn cfs files, selectTab is now saved - BPN error histogram index 0 = index 1 - FileDropCam added - bugfix in TScriptForm.SetParams - displaying of arrays variables added -------------- V3.37 --------------------------------------- september 2006 - august 2007 - moved to MS Visual Studio 2005, Visual Studio 2003 is no longer supported - updated to FirePackadge 2.6.1 - alfa version for Linux - special lib files for use with .NET - CosineWindow, GaussianShape(R), RampPattern and SinusPattern moved from numoper.cpp to ordoper.cpp - gentempl.exe adapted to remove generated duplicates - numimage.cpp changed from new to malloc - form size thresholdtool set to fixed - regression files set to lowercase - no spaces required before and after ( ) in expressions - commands DrawLine and DrawLines added - command Vector added - enum TransformDirection moved from freqtran to numoper - BilinearInterpolation as inline template in numoper.h - Warp operator added - Genetisch algorithm extended with FitnessAllCmd - dongle support added for linux - bugfix in BlobMeasure for Coord2D conversion (rounding in stead of truncate) - TextOnImage: extra space displayed at end of string removed, comma font corrected - bugfix in BilinearInterpolation for edges of image - FishEye operator added - Extra parameter ZeroOrOriginal added to: BlockPattern, CircleShape, DiskShape, DrawLine(s), LinePattern. Note: Backwards compatible behaviour is retainted by adding the parameter value ZeroImage - New implementation for ROIR with more freedom for chosing coordinates - check added for negative array indexes as lvalue - Isodata added to histogramanalyse - New implementation for ThresholdIsoData - Isodata added to GrayscaleBlobAnalyse etc. - Added to GrayScaleBlobAnalysis: WeightedCoG, SumWX, SumWY and SumPixels - Added to FirePackage: firewire 1392b support for Pike's (800Mbit), AutoGain, AutoWhiteBalance, AutoShutter - icall, call and lcall accepted with upper case - FFT pair changed, scaled by N (height image), note all FFT related operators like InFocusValue and Correlation are scaled. - LastFileCamName cmd added to retrieve last snapshot filename for FileCam - NewLineToFile cmd added - VarToArray returns as function result size array - name of GetDimVarand SetDimVar cmds changed to Get/SetSizeArray - bugfix in GrayScaleBlobAnalyses, Curvature must be selected in combination with BendingEnergy - bugfix in SetFeaturesImageCmd, one extra empty feature was read - $var array extended with local arrays and local vars - Length, findfirstof en findlastof operators for string length $variables added - Checks added for ROI for topleft in image and resulting image with height/width of zero - comment at end of $var expression allowed - trim right spaces on $var expression added - sanity check added to sigma paramters for operators that use gaussians - Delay 1 second added to constructor of DXCam - evaluation of expressions addapted to work with . operator and $vars with "(" - GuppyF-033B en GuppyF-033C added to camera list GUI - F7 no longer used for Image Attributes, only for repeat last cmd - scrollbar added to camera params form - display cmd in script checks existence of image - TextOnImage, font selected with combobox - Protected Checkbox added for scripts - Optical correction tool not selectable if no image selected - Fish eye tool added - Close all images added - dynamic forms and edit form addapted for Vista - BPN feature classifier GUI enhanched - Mark UnMark features button added - selected featuers are saved after saving bpn - auto ident added to scripts - block (un)commenting added to scripts - Bugfix for ROI params, are not copied to script with F7 from interactive mode - because of compatibility with Wine all open file are now by local file system, no optimalisation for localhost - online help voor Countpixel(s) operator in analyse menu - invalid check removed on space in file name for changing reduce factor in attributes form - invalid check removed on image type of CFS - bugfix in AnalysePixels for one dimensional images - after select features in FeatureBPN current evaluation set is selected for new bpn - check added for same size image for HistogramROI - correct handling of images with height or width of 1 pixel by AnalysePixels and ThresholdTool - parameters changed with double click on scrip line for varparam forms are save in ini file - bugfix for stayontop for ThresholdTool and BlobAnalysis - bugfix for ThresholdTool in handling IntXXXImage with values > 255 -------------- V3.36 ---------------------------------------- november 2005 - july 2006 - expression evaluation added, notes: $v = ( ,must be $v = "(" $r = $a . $b , $a and $b must not empty - array variable added to script language with operators SetDimVar, GetDimVar, CopyVar, ArrayToVar, VarToArray - script language extended with switch statement - FreeVisionLib added to module image.cpp - operators FastRGBtoHSV and FastYUVtoHSV added - updated to Smartkey V11.5 - CameraBase::GetParamsInfo give camera params in the same sequence as the are added with AddParam - updated to FirePackage V 2.4 - CamDistortion and OpticalCorrection added - added CorrectXYCoord and CorrectCoord2D - ConvertToFalseColor added - Threshold3Channels: type of threshold lows/highs changed to ints - FirePack included in all examples.sln - new license generation tool - GenSoftKey cmd added - lread etc p_check added - Reset() {}; removed camera.h - WDM and CMU can not be used together if webcam supports VFW ??!! - bugfix for round cmd for negative numbers - JL_VisionLib_DLL: project setting changes Automatically Generate precompiled header - bugfix for correct fontnames in fontsJL.txt in system dir - SplitFilePath added to OsSpecific - SystemMsg and FindSysFile moved from Util to OsSpecific - Image classifier for color images - TextOnImage silently accepts text which is too long - dll's now with standard FirePack support - FirePackage added - all member functions in Cambase changed to virtual and default implementation for Reset - callback procedure added to cmd interpreter - RemoveBlobs, RemoveLabels, BlobAnd, LabelAnd and FindSpecificGrayScaleHoles optimized - in 3.35c introduced memory leak in Contingouos snapshot removed - Insert operator check added wheter leftTop param is inside image - Cmds and keywords are now case insensitive, keywords full lower or uppercase - debug loging in BPN::ReadFromStream removed - comment lines modified to accept no space directly after // - new operators GrayscaleBlobAnalysis, RemoveGrayscaleBlobs, RemoveGrayscaleLabels Find/FillSpecificGrayscaleHoles. - create CFS BPN set scriptname to dummy name - CFS extended for color images - '\' in scripts added as continuation mark for multi line cmds - SameImage check added add image.h distrib: - fonts.jls and courierx.jl copied to examples delphi, svr and VB test dir - demo licences added to VB and Delphi5 directory GUI: - Error handling protocol changed, first char must be [ - Optical correction tool added in Analysis menu - Extra confirmation question added after delete button in Camera setup form - Edit boxen in Camera setup are now editable - camsetup add new camera, check added if new camera name already exists - bugfix for remove var in vars window - bugfix for dirty mark in scripts for delete key - filecam reinserted to ini file - Find/FillSpecific(GrayScale)Holes: BA_NrOfHoles and BA_AreaHoles removed from possible BlobAnalysis tools - ThresholdTool: warp around red disabled for non HSV image - ThresholdTool: first slider action creates thresholded image - lwrite adapted to support bmp format, but note image is saved as it is displayed with its current LUT settings and it is converted to rgb888image before saving so possible lost of accuracy - LCall and GUIForm now work also in upercase - Text.h added to help - multiple dirty marks bug for scripts solved - TextOnImage: ini file changed to make copy before cmd - Search text function added to script - Grayscale Blob Analysis added to toolbox - double click on script activates dirty mark in caption of script - Ok button and Cancel button in Camera setup form are replaced by close button - laddscript, errormsg added if file does not exists - lpwd added as cmd without var assignment - Dirty mark '*' in Caption of script form - DynamicMenuItemClick: renaming with unique image name changed with leading space - Drag and drop added - max size of masks for filter operators enlarged to 1001 x 1001 - auto scroll property script := false - auto size property picform := false, all image look the same in right top corner -------------- V3.35 ---------------------------------------- januari - oktober 2005 - cpu speed calibration improved for speed switching cpus - BlobAnalyse.BACalcBasic addapted to handle negative labelnrs due to overflow in BlobMeasurement - timeout problem with networkdongle solved - open CIS problem solved in combination with network dongle - Feature classifing added using neural networks (status: experimental) - Added SumRows and SumColumns operators - Added cmd pixelstostr - CmdInterpreter::Execute addapted to handle nested commands with return values - Util::FindSysFile adapted to return diretory and filename - FireCam::FireCam cam.CaptureImage() added, at least 1x snapshot is required to StopImageCapture in destructor - bugfix for displaying labelled Int8Image - license.txt renamed to license_visionlab.txt - NrImages function added to FileCam - class BlobDownCompare and class BlobUpCompare moved from blob.cpp to blob.h - GetLastFileName added to class FileCam - FindSysFile moved to util.h - TextOnImage, AvailableFonts and FontHeight added - VisLibCmdInt::InsertImage changed to set lut of image to default lut - function StopWatch.Split added - commands for time stamps and time addded - substr command added - bugfix in Histogram::IntegratedOpticalDensity in calculating first element - bugfix in history of images snaphoted with FileCam, correct image name is now displayed - check addded for starting point inside image in LinePattern and BlockPattern - bugfix for passing more then 10 params to script - check added for ROI for height/width = 0 - typedef ColorType added for XXX888Pixel and xxx161616Pixel - ConvertCFAToRGB888Image and ConvertCFAToRGB161616Image added - cmdname ParionalScan changes PartionalScan (FireWire) - bugfix in StandardDeviation for images with 1 pixel - FindBestCircles, FindFastBestCircles and HTBestCircles added - changed to version 6.3 of FireWire driver - Extract1Channel added - bugfix: local vars released after return - break command added to server as noaction command - file cam logs filename in history image GUI: - Camera setup: handling of ROIs improved - "contiguous" as captions for snaphots changed to "continuous" - Camera setup: if default values for camparams are not in range of min..max a value in between is chosen - UserMenu replaced by User1Menu, User2Menu and User3Menu - BlobAnalysis saves settings after Analysis button click and Done button - all menus disabled during continious snapshot - use of scroll wheel and + or - button to reduce display of image - bugfix in lread for reading bmp and jpg with $vars - abort button added to script form - shortcut F9 for execute current script, was used for histogram - guiform cmd added to script menu - bugfix in save imageclassifier, do not save cfs - added contiguous snapshot button on Camera setup form - camera setup parameters with scrollbars - special ROI form added for editing in script - if local server is not found in [localserver]exename, current directory is used - bugfix for stepinto button in script after continue after break - scripts are disabled for editing in debug mode - DisplayLUT type added to caption of image - math operators moved to own submenu - image locked msg if image is locked when synchronising - synchronise command added to servermenu - guiform added, displays a dynamic form from a script in order to query the user with inputs, result is a string with the answers . - selection lost problem solved with timer - attribute window relative to double mouse click position - Create BPN en CIS forms are changed to modal forms - Checks added if image exists on server for Edit, Analyse, Histos and Attributes forms - Commands for Histogram Statisticsand Histogram ROI Statistics added to Analyse menu - Toolbox seperator changed to separator - New resulttype for Varparam: circles - bugfix for: Edit internal script loses identation -------------- V3.34 ---------------------------------------- august - december 2004 - dongle driver and sdk 11.1 - imageclassinfo cmd added - improved reporting of license and dongle problems with extra MessageBoxes - EuclideanDistanceT improved for 7x7 mask at 2x3y - camInfo improved for FireCam - improved param checks in FireCam constructor - bugfix for ROIR if object is close to border - bugfix in Image::CheckXYCoordInImage - OnePush white balance calibration added to FireCam - EchoMode added to VisLibCmdInt - NumImage::InitForNewImage improved with faster memory allocation for color and complex images - camera parameter OnePush added - .Net wrapper SetImage accellerated for RGB888Images - Demo msg added in cmd interpeter - MessageBox error msg added for wrong license file and/or dongle - Bug fix for HSVxxx conversions - Util::StripTimeMsg added - beta version c dll and Delphi wrapper - LabelBlobs errorMsg about too many candidates extended with advice for conversion - bugfix FireCame WhiteBalance U and V where mixed up - bpn default initialised with [-0.2 .. 0.2] - Bugfix for save calibrationfile for camera '=' replaced by ':' - SetImage in .Net wrapper changed, is now using Convert - License file generation for batch added GUI: - CameraSetup: buttons adeded for Add and delete camera's to list of available camera's - Toolbox added - Open and save Dialogboxes are now resizeable - cmds blobanalysis and blobanalysisheadertxt are moved from the Label menu to the Script menu - prompts for extractyuvchannels cmd are changed to Y U V - Options form: added Server log en/dis-able - Server | Start: extra delay added between starting server and connecting - added refesh button on CamSetup form for updating cam params in scripts - BPN training, error histogram is redrawed after tab change - bugfix for CIS "save as", in memory cis was not renamed - max stacksize increased to $01000000 - Application.UpdateFormatSettings := False; - bpn_create modified for $minmaxInputTab parameter - error msg for updating histogram when image is deleted - Bugfix for save calibrationfile for camera '=' replaced by ':' - display cam info for multiple camera's improved -------------- V3.33 ----------------------------------------- februari - august 2004 - support for .bmp in lread cmd - Note: beta version for neural network (BPN) and Class Image Set (CIS) - DX cam support added to demo version - Bias and 2nd hidden layer added to BPN - license file lookup: current directory, system directory (XP: c:\WINDOWS\system32) - Bugfix for removing class from CIS, it now modifies class id - bugfix in Breadth calculation - memory leak removed from bpncmds - mod and fmod cmds added - Extract3Channels, Merge3Channels, Threshold3Channels extended for 16 bit colors - Bugfix in HistogramROI GUI: - info for init string in CamSetup form added - Indentation for scripts added - Bugfix in closing EditForm with x after selecting pixel for changing value - Bugfix for adding/modifying ROI operator in script - BPN GUI extended - Update of closed variable window correctly handled - BPN GUI changed - Runtime help added for BPN and CIS - 3rdselected added to double click cmd in script -------------- V3.32 ----------------------------------------- may 2003 - januari 2004 - moved to Visual Studio.net 2003 - new camera framework - more flexible for camera properties - support for multiple ROIs - support for multiple cameras - NOTE: cmd snapshot is addapted - old syntax: snapshot - new syntax: snapshot // for one ROI - new syntax: snapshotrois .. // for all ROIs - SnapOnSoftTrigger addapted to work with all OrdImages - FileCam and Dummy addapeted for new cam framework - Module Counter and Stopwatch are moved to namespace JL_Util - Firewire camera support added - bugfix in DoGFilter - new image types: RGB161616Image, HSV161616Image, YUV888Image and YUV161616Image - cmds histogramstatistics and histogramroistatistics are moved from module cmdssvr.cpp to cmdsint.cpp - cmds lcwd, lpwd, lread, lwrite and laddscript added to cmdscmd.cpp in order to support regressie testing on server with clientside script - new .NET class library JL_VisionLib_NET around visionlib and visioncmd interperter - bugfix in testlastanswer cmd in server, next cmd was skipped - aborting cmds in .NET class library added - bugfix in Length and width calculation in BlobAnalysis for blobs with orientation parallel to x or y axis - isequalvar cmd: superfluosios cr/lf at the end of the result is removed - triggering added to firewire cams - Correlation addapted: lowest pixel value is scaled to 0, risk for overflow reduced - RandomInt addapted: low and high have now same distribution as the 'middle values' - Size of cmd history for image limitated - Gaussian filter accellerated, so Canny and MarrHildreth are faster too - support for image file in ascii format - FireCam extended for Enum cams - isvar cmd added - precision of zoom operators improved - expirimental and undocumented neural network (BPN) and Class Image Set (CIS) added - beta version for Direct-X cams (wdm) added GUI: - Delphi upgraded with update pack 1 - Display polar line addapted - Camera recorder extended to display snapshot times - both .bmp and .BMP are supported as extensions for bmp files - Decimalseperator set to ".", for displaying HT - bugfix for canceling doubleclick indented line in script - lread and lwrite extended to support imagename with spaces (pe: "file name") - bugfix for double selecting currentscript, 2nd and 3rd image - bugfix for read from clipboard - bugfix for syncvars if varwindows was closed -------------- V3.31b ----------------------------------------- april 2003 - concat cmd added - bugfix in handling \n and \r for serverside scripts - bugfix for goto cmd for serverside scripts - bugfix for // comment line for serverside scripts - bugfix in display Float(Double)Images with low contrast GUI: - bugfix in VarParam form, releasing memory after user error in "constructor" -------------- V3.31 ----------------------------------------- februari 2003 - demo mode with dongle possible - license file extended, error handling improved -------------- V3.30 ----------------------------------------- januari - februari 2003 GUI: - modify variables allowed in examine variables form - bugfix for script lines with only spaces in client - jump button added for jumping to line nr in script - bugfix for analyse edit pixels using small images -------------- V3.29 ----------------------------------------- october - januari 2003 - experimental and undocumented neural network (BPN) added - compiler and operationsystem cmds added - string comparison operators (=== !== >> >>= << <<=) added in command interperter - stand alone use of vislib.lib must initialise lib by calling InitVisionLib(), cmdlib.lib and svrlib.lib will perform this initialisation automatically - port to Visual C++ .net - in demo mode it is now impossible to add user cmds and to register cameras - Support for updating license by email file - Old dongle style is no longer supported - HistogramEqualize adapted to stay within orginal min and max pixel value - port to MSVC7 - LUTs:SquareRoot throws exception if value < 0 in both release mode and debug mode - removeallvars cmd added - (l)varfromfile, (l)vartofile and (l)resetfile cmds added - catch of all os c-exceptions (for BBV5) in cmd interpeter - string manipulation operators on vars adapted to work with $var and $$var and reference to var &$var and &$$var, note order of parameters is changed examples: old: $res = getfirsnwords var 3 new $res = getfirstword 3 $var old: $res = removefirsnwords var 3 new $res = removefirstword 3 &$var // is reference because $var is modified - error msg for reducing or zooming images with result height or width of 0 GUI: - Check added for version nr of ini file - faster implementation for edit image - bugfix for using % in actual parameters - new commands: disablebreak and endablebreak - spinedits for getnthword etc should be initialised in visionlab.ini with 1 32000 (and not with 32000 1) - comment line in local script should start with // followed by a space, //comment was allowed in local script but not allowed in remote script - line nr added to script form - bugfix for display image with odd width and reducefactor > 1 - ini file: removenthword should be removefirstnwords - ExtractHSV(RGB)Channels: LUT set to correct value - ThresholdTool: beep at startup removed for color images - Label stringgrid in BlobAnalyse can be traversed using up and down arrow keys - bugfix for ROIs with 'endpoints' in 2nd, 3rd and 4th qwadrant - bugfix for changing mask sizes in HitAndMiss - all windows adapted for using with XP - removevar also possible without double click in variable window - Mouse can select (0,0) in Edit image -------------- V3.28 ----------------------------------------- september 2002 - network dongle added - operator floattoint added - NHL dongle addapted - added math operations on vars, like sin, asin, sinh, exp, pow, etc - local cmds extended for interpreting vars - . var operator extended for using constants embedded in "" - bugfix in ConvertRGB888PixelToInt - DoG, Log and Gaussian operators renamed tp DoGFilter, LoGFilter and GaussianFilter - bugfix for script called by icall if cmd line ended with $var - BlobMeasure adapted to work with removed labels GUI: - double click in script addapted for cmds with identation - bugfix for saving lock image as bmp - bugfix in abort local scripts -------------- V3.27 ----------------------------------------- july - august 2002 - IdentifyBarCode operator added for Bookland CODE_39 CODE_128 EAN_8 EAN_13 Industrial_2of5 Interleaved_2of5 Standard_2of5 UPC_A UPC_E USD_3 - DoG operator added - LoG operator added - Gaussian operator added - Canny operator added - Threshold Hysteresis operator added - Non Maximum Suppression operator added - Marr-Hildreth operator added - member operation SetMask and operator() added to class Mask - DiskShape fixed for roundoff error - define added for NO_DONGLE (demo only) - ChainCode::ConvertFromIntImage is changed to TrackBoundary - module qstring moved from cmdlib.lib to vislib.lib - function GetImageType added to CameraBase - CamRecord(er) added - FileCam added for simulation of camera - cmds added for accessing parallel port, portio.cpp updated - bugfix in MirrorInCenter for image with odd nr of lines - bugfix in CmdInterpreter::SubstituteVars for strings ending with '/r/n' - error msg added if $ is ommitted in $var = expression - isequal, isequalvar and isthesame cmds return now "true" and "false" instead "equal" and "not equal" - millidelay and microdelay cmds added to cmd interpreter - *displayimage cmd extended with reducefactor param GUI: - SpinEdits in ThresholdTool addapted for handling nill input - Variable form changed to MDI child - local GUI cmds synchronise, syncimages and syncvars added - lcwd in GUI modified to give error msg if directory does not exists - lread in GUI modified to give error msg if file does not exists - bugfix in GUI BlobAnalysis incorrect display after removal of labels - bugfix in Camera setup form: average pixel was not updated - Bugfix in TCamSetUpForm.FormShow: registered cams on server where asked for each FormSchow - isequalvar and testequalvar cmds added to GUI - delay cmd moved from GUI to cmd interpreter - bugfix for GUI for selecting operators in menu after closing image and cancel option in ext from main menu - GUI extended with reduce factor for image displaying -------------- V3.26 ----------------------------------------- april - june 2002 - Hough line transform: param minR, maxR and deltaR changed from int to double - operators on vars added for string concatenation and modulus on integers - Conformation for close all in gui added with check on running (debugmode) script - File open dialog gui standard on *.jl and *.jls - tabs added to editing scripts - bugfix in for statement in client using local var - bugfix in intoper.cxx for &, =&, etc - script language extended with variables and control statements - Bug fix in Convert for conversion from HSV888Image to HSV888Image - NOTE: major change in LabelBlobs and BlobAnalysis LabelBlobs does NOT count background(=0) as label any longer and it's return value is 1 (one) lower as before. LabelBlobs returns now the value of the highest label found (=maxLabelNr) instead of the nr of labels used. higest_label = nr_of_labels_used - 1 (background). BlobAnalysis has now as third parameter maxLabelNr instead of nrLabels. So the pair of procedures: int maxLabel = LabelBlobs (holes, connected); BlobAnalysis (holes, s, maxLabel, blobTab); will work still correct, but maxLabel has a value which is one lower as before. BlobAnalysis removes now all non existing labels (Area = 0) from the blobTab result. This situation could exist after a RemoveLabel operation. -------------- V3.25 ----------------------------------------- februari - april 2002 - earlier fix in TMainForm.FileOpen for 'lost OnActive event' removed - Bugfix for memory leak in operator ! for IntxxxImage - Threshold tool added - GUI histogram with ROI displays now statistics of roi - TServerInterface.DisplayPic in GUI changed to function returning a TPicForm - bugfix in GUI display error for masks with height or width = 0 - operator Threshold3Channels and cmds thresholdrgbchannels and thresholdhsvchannels added - rgb888im.cpp/h renamed to rgbimage.cpp/h - rgb8oper.cpp/h renamed to rgboper.cpp/h - operator RGB888Image::Filter is now redundant and removed - operator Extract3Channels and cmds extractrgbchannels and extracthsvchannels added - added 2nd3rd4thimage and 4thimage as result for varparam form - added 3rdselected image to GUI - operator ImageConversion renamed to Convert - cmd convert and ImageConversion extended for HSV888Image - cmd *getasrgb888 renamed to *getas888 - HSV888Image added - class RealImage added to image hierachy - Operator InFoucusValue added - Operators Convolution(FFT), Correlation and DeConvolution added - Added to GUI operators From and To clipboard for images - Repeat last cmd operator (F7) added to GUI - Operators ComplexImageFromPolar and ...FromRectangular moved from menu synthetic to menu complex - Operator NrOfNeighbours has changed default displayLUT to Stretch - ApplicationsEvent object added to GUI for 'lost OnActive event' problem - fix in TMainForm.FileOpen for 'lost OnActive event' - new implementation for operators RemoveBlobs and RemoveLabels: parameters low and high are now of type double, so parameter scale is not needed any more - default port nr for server changed to 2066 - Operators FindSpecificHoles and FillSpecificHoles added. NOTE: FillSpecificHoles is a generalisation of FillHolesWithArea FillHolesWithArea is now redundant and removed - bug fix for roi operator in scripts - Histogram implementated with double instead of int, note GUI works still with ints - ThresholdMulti optimized - Added operator SetMultiToValueLUT - bug fix in IntImageoperator !, connected was not initialised properly -------------- V3.24 ----------------------------------------- november 2001 - januari 2002 - polarline added to possible results of servercmds - cmd GetRegisteredCamaras added - Gui displays now only registerd cams - cmd initrandomgen added to server - BlobAnalysis, BlobMeasure, RemoveBlobs, RemoveLabels moved from module binary.cpp to blob.cpp - Class Histogram moved from intoper.cpp to histogram.cpp - HistogramOpticalDensity added to histogram calculations - Histogram extended with functions for Sum, NrElms, Mean, Median, Modal and StdDeviation, GUI modified for these extra functions - Camera calibration Tz replaced by -Tz - Precision added to GUI for displaying floating point numbers - Hough circle transforms extended for radius in floats - Subpixel precision for center of Hough circle transforms added - Note: class HoughCircle has been changed, radius and center coordinate are using doubles instead of ints. - camera calibration enhanced - GUI for camera calibration added - Bugfix in QString::c_str() - Bugfix for GUI AnalysePixels for image with height or width = 1 - Always on top forms are now optional - Bugfix for ChainCode::ConvToXYCoord: first element was 2 times in list - ChainCode constructeor: Rescriction removed that objects must be bigger then one pixel - ZeroCrossing: default parameter Connection added - String and streaming procedures for Connected moved from module Binary to IntImage - Bugfix for RioCam in RGB888 mode - SetExposure removed from RioCam, use SetBrightness instead - Bugfix for SetHue for RioCam - Buffix for GuiDemo for camera access - Change of xxxImage to xxxImage in all interface definitions for operators - RATS family of operators has been changed: Sobel is used instead of Scharr for edge detection, and there is no automatic promotion of internal used image to Int32Image. In order to avoid overflow in calculations it is adviced to convert the input image to Int32Image of FloatImage before the calculation - New operators added: ConstrastStretchLUT, GammaLUT and InvertLUT - Bug in ThresholdIsoData fixed for images with only one pixel value - GUI asks version info from server - Resize(h,w) replaced by Resize(HeightWidth(h,w)) - renaming of HoughTransorms: HoughCircleT -> FastHoughCircleT FindBestCircle -> FindFastBestCircle - added: HoughCircleT and FindBestCircle for binary images - bugfix for non square images in HoughCircleT - DFT1d and FFT1d exported - bugfix for displaying list of (mdi)froms in gui client -------------- V3.23 ----------------------------------------- october 2001 - changed to new versions of compilers -------------- V3.22 ----------------------------------------- september 2001 - new dongle id - analyse pixel, histogram, blobanalyse and edit forms stays on top - input param check added for get/set pixel cmd -------------- V3.21 ----------------------------------------- june - august 2001 - dongle support added - Dummy camera added - new expirimental Hough transform for circles - convolution optimized - all edgedetection operators optimized: both magnitude and direction images can be calculated with one call - GUI BlobAnalyse: mouse click in labeled image finds corresponding line results list - ROI and AddBorder added to module IntOper.cpp as IntImage operation in order to preserve connected property - ChainCode4 and ChainCode8 merged into ChainCode - BlobAnalyse optimized using ccTab and binROITab - Zero crossings filter added - Reconnect option added to server menu of GUI - BlobAnalyse and BlobMeasurement extended with MomentsSR1, MomentsSR2 - Filenames changed: vislab.exe, vislab.ini and vislab.hlp are changed to visionlab.exe, visionlab.ini and visionlab.hlp - BlobAnalyse and BlobMeasurement operators Mxx, Mxy and Myy renamed to Moments_xx, Moments_xy and Moments_yy - BlobAnalyse and BlobMeasurement extended with MomentsScale_xx, MomentsScale_xy and MomentsScale_yy - Eccentricity added to BlobAnalyse and BlobMeasurement - Blob.cpp and BlobAnalyse in binary.cpp reorganised, calculation of Orientation moved to blob.cpp - Reset timer operator added in menu Server of GUI -------------- V3.20 ----------------------------------------- june 2001 - CalcHistogram extended with roi parameter - ThresholdIsoData extended with roi parameter - RATS and ThresholdRATS extended with roi parameter - bugfix for BlobMeasure using UseY as parameter - bugfix for Display (to clipboard) operation for RGB888Image - Analyse Pixels in GUI extended with red position marks - File and image names now may contain spaces if contained within " and " - Server command call extended with parameters %p1 .. %pn -------------- V3.19 ----------------------------------------- april - may 2001 - bbv5 project files updated - bbv5.txt updated - bugfix for EDM: rounding error in scaling operation - startup checks extended - minLeft, maxLeft, minTop and maxTop added to CamBase - RioCam updated with checks from Cambase - Rio cmds checks added - Client GUI now accepts .JLS and .jls - Expiration controle aangepast en op 1-1-2002 gezet. -------------- V3.18 ----------------------------------------- march - february 2001 - Sorting added to BlobAnalysis - Bugfix in Delphi GUI for StrLinesToStrList, did not convert strings with length = 1 - Bugfix for NumImage.Resize: hostToNetworkConv was changed - Bugfix for BlobAnalysis: selecting sorted blobs in old order -------------- V3.17 ----------------------------------------- january - february 2001 - Delphi GUI, bugfix for initialising dynamic spinedit - Class Blob members sumX, sumY, sumXX, sumYY and sumXY changed from int to double - Server and command interpeter separated in vislibsv.cpp and vislibcm.cpp, NOTE: adding user operators to server has been sligthly changed, see example useroper.cpp - Clone operator changed now returns pointer to ImageXXX instead of image (old MSVC5 bug) - sockcom::client::connect adapted for using ip numbers with sockets V1 - lread in Delphi GUI changed to read-only - all float params in lib changed to double - GUI implemented with Delphi 5 - To_csv_file button added to blobanalysis - bug removed from BlobAnalyseHeaderText for XYCoord - added templates ComplexImage and ColorImage - added classes ComplexFloatImage and ComplexDoubleImage - added data member hostToNetworkConv to template NumImage - only one instance at the time for GUI - synchronise scripts option added to GUI - GUI, added for varparam: result=3rdimage - added operators ComplexImageFromPolar and ComplexImageFromRectangular - byteimag.h, int8imag.h, int16im.h and int32im.h are merged into intimage.h - float.h is merged into ordimage.h - added DoubleImage (pixel = double) -------------- V3.16 ----------------------------------------- november 2000 - january 2001 - SaveAs added to mainmenu of Delphi client - Operator PolarStretch added, donated by Jan Wybren de Jong - Operators RemoveBlobs and RemoveLabels added - added to server fail test on istream - ContrastStretch, Gamma and Invert extended for OrdImage - GetHistory excluded from csv conversion - support for HiPerCam included - VarParamForm modified to display string result - Bug fix for Display of FloatImage with all same values for LinearLUT - Bug fix for server, setting displaylut to Binary for FloatImage after Thresholdxxx is now disabled. - RatsLocal: minAvgEdges = 0 now allowed, bug with /0 removed - SetMultiToZero and SetSelectedToZero are generalised to SetMultiToValue and SetSelectedToValue - bug fix for GaussianShapeR if centre is outside of image - maximalize script window disabled, due to bug in delphi 3 - BlobAnalysis changed, extened, now more precise control over result, code changes are needed for old code using new version, example for calculation height, width, topleft and orientation old: int nrLabels = LabelBlobs(image, connected8or4); BlobAnalysis(image, BASurroundingBox | BAOrientation, nrLabels, blobTab); new: int nrLabels = LabelBlobs(image, connected8or4); set tools; tools.insert(BA_Height); tools.insert(BA_Width); tools.insert(BA_TopLeft); tools.insert(BA_Orientation); BlobAnalysis(image, tools, nrLabels, blobTab); - BlobMeasure changed, supports now all BlobAnalyse tools - added brightness, hue and saturation to Camera Setup (not tested yet!) - checklistbox added to varparam list - BlobAnalysis extended with AreaHoles and PerimeterHoles - added FindHoles - added gain and offset to Camera Setup - BASurrounding changed from 0 to 1 - LogMode added - bugfix for LocalMinFilter and LocalMaxFilter for non full mask - bugfix for RedisplayAllImages in Delphi gui - added as GUI cmds: lastanswertologfile,lasttimetologfile, texttologfile - bug fix in GUI for create cmd - added cmds: blobanalysistext, blobanalysisheadertext - added as internal script cmds: llastanswertologfile, llasttimetologfile, ltexttologfile - Add2ndToHistory added -------------- V3.15 ----------------------------------------- september - october 2000 - Delphi GUI can now open more then one file in one open operation - Operator SetEdges renamed to SetBorders - Operator SetBorders, RemoveBorderBlobs and RemoveBorderLabel have an extra parameters borders - Conversions updated for OrdImage - Bug fix in Zoom operator for edges - Bug fix for history mechanisme - (Threshold)RatsLocal parameter minSumEdges changed to minAvgEdges - Delphi GUI: image can not be maximized anymore - LabelBlob bug removed for EightConnected: wrap-around on last pixel if line - Delphi GUI bug fix in AnalysePixelForm.CoordinateChange for FloatImage - Operator CheckXYCoordInImage and ROIR added - Operator Zoom now called ZoomXY and has and x and y factor - New operator Zoom, it zooms to a specified height and width - RATS and LocalRATS generate exceptions if specified edges are not found - LineXY, Line2D and Line3D added to coord.h - Connected field added to image attributes of GUI - Length and Breadth added to BlobAnalysis and BlobMeasurement - BMBoxHeigth and BMBoxWidth changed to BMHeight and BMWidth - Mxx, Myy and Mxy added to moments in BlobAnalysis - ChanCode4/8 added, Perimeter code adapted - += and -= added to coord.h - added BoundingBox to BlobAnalysis - field connected added to IntImage, automatic detecting of connectivity for BlobAnalysis and BlobMeasurement - image not initialised test relaxed for operator= - test for origin in mask added - check for divide by zero in Remainder added - delphi client: optimizer off, runtime check on - Discrimination of upper and lower case in script doubleclick -------------- V3.14 ----------------------------------------- june - august 2000 - added next two lines to file bcc32.cfg in BBV5\bin directory in order to let BBV5 work correctly under NT4 and WIN9x (otherwise Win2K is assumed) -DWINVER=0x400 -D_WIN32_WINNT=0x400 - BCB5ProUpdate1.exe patch - all old BBV3 patches removed - examples addapted for BBV5 - Operator CreateNewImage overloaded with HeightWidth parameter - ThresholdFast overloaded with low and high parameter, GUI client uses now this operator - Bugfix for print image in GUI, height and width are exchanged, must be tested! - break and delay commands added as internal script commands for GUI - continue button added on script form - extra option for result (bothimages) as parameter in description for operator in ini file - BlobAnalysis changed, extened and speeded up, code changes needed for old code using new version old: LabelBlobs(image, connected8or4); BlobAnalysis(image, blobTab); new: int nrLabels = LabelBlobs(image, connected8or4); BlobAnalysis(image, BASurroundingBox | BAExtremes | BAMoments, nrLabels, blobTab); - MSVC6 version created - Error(opName, msg) added - CheckImage added for buf == null for all operators - Check added src == dest for all dyadic operators - const string changed everywhere to const string & - param imageHeight removed from InitMaskOffsetTab - RATS and ThresholdRATS extra template param Value added - BlobMeasurement corrected for divisions by zero - Added operators SetMultiToZero, RemoveBorderLabels and LabelAnd - GUI client extra menu Label added and all label operations moved from segmentation menu - %startupdir added as preprocesser cmd for gui client - switched from BBV3 to BBV5 - Bugfix for ThresholdRatsCmd in server, returns not printable chars for ByteImage - BlobAnalysis: blobs.clear() added at the beginning - Bugfix MirrorInCenter works now for non square images too - RATSLocal: check on upper value for nrLevels added - RATSLocal: speed up 2x because of integer arithmetic -------------- V3.13 ----------------------------- may 2000 - Bugfix for FloatImageForDisplay and log display if pixel == 0 - operators Zoom, ThresholdLocal, RatsLocal and ThresholdRATSLocal added - expiration date set to 1-3-2001 - operators SumIntPixels and SumFloatPixels added - operators RATS and ThresholdRATS added -------------- V3.12 ----------------------------- march - april 2000 - Converions added NumImage -> IntImage and NumImage -> OrdImage - All +, -, * etc operators updated for const image as first parameter - camera server cmd added at first level - LUT operators excellerated for minPixel == 0 - ThresholdFast added - SetPixel added - Operator CircleShape renamed to DiskShape - New operator CircleShape added - Client EditPixels addapted for large character display - Cancel option added at closing form for scripts - Bug patch for history mechanism for BBV3 - binary.cpp split in binary.cpp and binmorph.cpp - FixEdges moved from filter.cpp to numoper.cpp - filter.cpp split in filter.cpp and edge.cpp - FillHoles returns number of filled holes - FillHolesWithArea added - BlobMeasure params BMNrOfHoles4 and BMNrOfHoles8 added -------------- V3.11 ----------------------------- march 2000 - RGBPixel: order of colors is now compatible with windows = (blue, green red, pad) - PixelPtrTabFromImage added to numoper.cpp and ordoper.cpp - GetXYCoord added to class NumImage - LabelBlobs returns nr of used labels including background - XYCoordFromImage added to numoper.cpp and ordoper.cpp -------------- V3.10 ----------------------------- februari 2000 - bug fix in client for ranking and binmorphing operator when reading first time from script, var cmd must be initialised from cmdLine. - client, vislab.ini: combobox with none as default parameter makes combobox invisible - Added LocalMaxFilter and LocalMinFilter operator - Counter.cpp addapted for higher frequencies up to 1000 Mhz - Added to BlobMeasure operator perimeter and formfactor feature - Added to BlobMeasure operator orientation feature - Added NrOfNeighbours operator - FillHoles addapted to work with blobs connected to the border - All libcode addapted for use of gentempl.exe -------------- V3.09 ----------------------------- december 1999 -januari 2000 - RotateSimple and RotateFullSimple removed from GUI - RotateFull has now return value for translation origin - Resize bug in Enlarge2 removed - cmdsord.cpp, cmdsnum.cpp, cmdsint.cpp, cmdsbin.cpp, cmdsfilt.cpp adapted for use of ENVELLOPE_CMD - display for Int8Image corrected for Binary LUT - PixelFromStream added to module convers.cpp - delphi client: added lread, lwrite, lcall, lcwd - c++ client: added lcwd, lpwd and lcall - all regression test use now lread and lcall - TestLastAnser command added to server - lib and svr ported to linux - SwapQuadrants: SetAllPixels removed from algorithm - DFT and FFT: SwapQuadrants added - Operators IsTheSame, TestEqual and TestTheSame added - command call and emptyline added - param CmdInt removed from RequestHandler in server - CmdInterpreter::Execute throws exception if no command is found -------------- V3.08 ----------------------------- november - december 1999 - performance of bmp conversions enhanched both for delphi client as bbconv - views on histogram (frequency, partialsum, IOD) - all operators which only writes to destination images, resizes destination image automatically - Signature of operator ROI changed - default constructor for all image types - name CountPixels changed to CountPixel - new operator CountPixels added - new operator Insert added - new operator RampPattern added - new operator NumImage::Resize - interface changed for Snapshot(image) and ReadFromFile, uses now Resize - NumImage::operator= and BB2JL uses Resize - new default constructor for NumImage - MSVC5 changed to multithreaded code generation - Blob::CentreOfGravity changed to return type Coord2D, client addapted too - name IsodataThreshold changed to ThresholdIsoData, parameter ObjectBrightness added - name SimpleThreshold changed to ThresholdSimple - name MirrorInCentre changed to Mirror with parameter MirrorOperation -------------- V3.07 ----------------------------- november 1999 - help added for cam header files - client drawing of selection lines changed to invert background - name changed: MultiSelect to ThresholdMulti - added: SetSelectedToZero, RemoveSelectedLabels, CountLabels - adress info changed - blob constructor changed, minX = maxX = minY = maxY = 0 - AnalyseBlobs bug corrected, did not admistrate borderpixels - class Blob moved from image.h to blob.h - added MaxPixel and MinPixel - added ThresholdOnHighest, ThresholdOnLowest, ThresholdOnLowestButZero -------------- V3.06 ----------------------------- october 1999 - client: extra function copy image to clipboard - bux fix setpixel for RGB888Image - ReadFromFile and ReadFromStream added to NumImage - MMT stuff moved from StopWatch to OsSpecif.h - Delay's on NT implemented using MMT - Restructuring of osspecific and stopwatch, new module counter for MMT - new image display routines for delphi client without using clipboard - bug fixed in module bbconv -------------- V3.05 ----------------------------- october 1999 - MSVC5 back to single threaded, due to missing ddl's on systems with no MSVC5. - module bbconv added for borland builder v3 conversions to and from jl images - VISIONLIBVERSION in own header file version.h - SimpleThreshold added - MSVC5 changed to multithreaded dll code generation in order to support GUI's - BBV3 extra define in project for _RTLDLL in order to support GUI's -------------- V3.04 ----------------------------- juni - september 1999 - SetTopAndLeft bug in datXCam Removed - Convolution and Rank operators work with ExtendBorder - Bug fix in client for handling double click on Rank operators in scripts - Max sizes for mask changed to 100 x 100 - added ExtendBorder operator - AddBorder operator changed, has now same prototype as ExtendBorder - added Cosine Window operator - added Create operator - added SnapOnSoftTrigger operator - new (3 a 6x faster) LabelBlobs, parameter maxPasses is now redundant - new and faster BlobAnd, FillHoles and RemoveBorderBlobs - added edgedetector Scharr - class Histogram added (intoper.h), all histogram based operations addapted - IsoDataThreshold added - Camera calibration added - Client: round-off error for centre of gravity in BlobAnalyse corrected - Client: bug in resizing stringresult form fixed - Blobmeasure added. - DeInterlace added. - Euclidean distance transform modified for non-square pixels - FloatToDisplay modified for log display, Note: negative values give total black image - added: BlockPattern, CircleShape, LinePattern and SinusPattern - Noise and Resample moved to synthetic menu - pattern menu changed to synthetic menu - name SetToGaussian and SetToGaussianR changed to GaussionShape and GaussianShapeR - image type added to caption of image in client - added operators: SetToGaussian, SetToGaussianR and TranslateCyclic, new menu-item Patterns - added fieldWidth for EditPixels in Client - bug removed in ConvertComplexToOrd for Power spectrum -------------- V3.03 ----------------------------- april - may 1999: - Port to Builder3 - see conditional compiles (BBV3) for little problems - problems with lib files of framegrabber drivers: - datx: new *.lib generated from *.dll with use of implib *.lib *.dll, case sensitive linking on (project options for creating datx.lib add to vissvr: datx.lib, Olimg32.lib Olfg32.lib and dt315732.lib - riocam: problems with _ in lib routine names, use riod.def case sensitive linking on (project options for creating riolib.lib add to vissvr: riod.lib, riolib.lib and riod.def - IsEqual and MinMaxPixel moved to analyse menu - Bug in update of logwindow removed - Blob analysis added for usage in scripts - added StandardDeviation operator. - added Sigmafilter and NthFilter operator. - added AveragePixel operator. - added Resample operator. - added AddBorder operator. - added RemoveBorderBlobs operator. - added max, mean, min and remainder operator (image math menu). - added new operators BlobAnd and MultSelect. - added as new internal script commands setlut and changeimagename. client: -script: del key does not work due to short-cut for close window, short-cut changed to ctrl+del -F1 help for script added -script: can not access image with name name%xxx due to error in preprocessor, bug fixed -selected 2nd or scriptimage is lost after executing stript, bug fixed -script, ctrl+c (= copy) doesnot work due to short-cut for convolution, short-cut changed to ctrl+u -------------- V3.02 ----------------------------- februari - march 1999: client: - automatic reconnect after changing server options - version nr and date centralized in main.pas help: - threshold (low..high) changed in (high..low) - entries for classical erosion/dilation in vislab.ini corrected server: - RequestHandler now uses ostringstream instead of ostrstream - BlobList* BlobAnalyse (const IntImage &) changed to void BlobAnalyse (const IntImage &, BlobList &) problems with big files: LimitTrafic toegevoegd aan sockcom.cpp and sockcom.pas Module coord added, XYCoord and PolarCoord moved from image.h to coord.h Read from file and copy image cmds added to history list of image in server