AForge.NET Framework Changelog

What's new in AForge.NET Framework 2.2.4

Feb 29, 2012
  • Fixed registered issues/requests:
  • Issue 53: Video Capture
  • Issue 76: Can't open video camera tv card
  • Issue 271: Complex.Phase is slightly incorrect (or at least non-standard)
  • Issue 272: Patch for /trunk/Sources/Neuro/Neurons/ActivationNeuron.cs
  • Issue 273: static Random doesn't work in multi threading without locking
  • Issue 275: Resilient Backpropagation Learning
  • Issue 277: Test if videoCapabilities is null
  • Issue 279: Blob and BlobCounter cannot be extended as their constructors are internal. It would be good if we can extend these class
  • Issue 280: DisplayCrossbarPropertPage method for CaptureVideoDevices
  • Issue 281: GetPixel in UnmanagedImage class
  • Issue 282: Image is not capturing from Capture Card
  • Issue 283: Bilateral filter
  • AForge.Math"
  • Fixed Complex.Phase property, so it provides proper value for cases when real part is less than zero
  • AForge.Imaging:
  • Blob'c constructor is made public, so could be reused by using inheritance
  • Blob.CenterOfGravity property is changed to have AForge.Point type, which is float, so now calculated CoG is more accurate
  • Added UnmanagedImage.GetPixel() method, which allows to get pixel out of 8/24/32 bpp image
  • Added UnmanagedImage.SetPixel(int, int, byte) method, which allows setting pixel with all color component set to same value (for grayscale image this method is more intuitive since there is no RGB-to-grayscale conversion)
  • Added support of 32 bpp RGB (not ARGB) images for BlobCounter
  • Added implementation of Bilateral smoothing image processing routine
  • FChanging BrightnessCorrection and ContrastCorrection filter to use RGB color space instead of HSL
  • It makes those filters faster
  • It removes HSL related artifacts related to Hue
  • It makes those filters simpler and more straight forward to users
  • If someone is unhappy by this change, he can still use HSLLinear filter to get the effect as before
  • AForge.Neuro:
  • Replaced Neuron's static random numbers generator with its thread safe version
  • Exposed Neuron.Weights, Layer.Neurons, Network.Layers properties instead of using [] accessors
  • Optimized access to arrays to eliminate bound-checking
  • Added implementation RProp (Resilient Back Propagation) neural network learning algorithm contributed by Cesar Souza
  • AForge.Video.DirechShow:
  • VideoCaptureDevice is updated to never provide null for VideoCapabilities property. If device does not support video capabilities or it failed providing them, then the property will return 0 length array, but not null
  • Added VideoCaptureDevice.DisplayCrossbarPropertyPage() method, which allows showing property page of a crossbar for the currently running video source (if it provide crossbar configuration)
  • Added VideoCaptureDevice.AvailableCrossbarVideoInputs property, which lists available video inputs of the capture card. This can be used to select video input to use before running video device using your own UI
  • Added VideoCaptureDevice.CrossbarVideoInput property, which allows setting video input to use by the video device
  • VideoCaptureDeviceForm is updated to allow selecting video input for capture cards
  • AForge.Video.FFMPEG:
  • Fixing VideoFileReader and VideoFileWriter classes so they convert file name to UTF8 string before opening file
  • Fixing signing of AForge.Video.FFMPEG.dll assembly, so now it has valid signature
  • AForge.Video.Kinect:
  • Updating libfreenect library with newer version which is checked out from master branch and built on February 20 2012
  • Updated Kinect cameras' stopping routines, so they don't block when device was disconnected and user tries to stop cameras
  • Added Kinect disconnection routine, so when Kinect device gets disconnected, cameras will stop automatically and specify DeviceLost as a reason
  • KNOWN ISSUES: It seems like libfreenect's freenect_process_events_timeout() function still blocks when device gets lost causing some issue on the USB side, making it hardly possible to gracefully stop managed Kinect's status thread. As a workaround the AForge.NET's code sets thread type to "background", so it does not stop application from exiting
  • AForge.Controls:
  • Updated Chart control so it does not check if points coordinates are in X/Y range of the control when drawing them. Instead of this the control sets clipping rectangle, so unwanted point/lines are not drawn
  • Updated VideoSourcePlayer.GetCurrentVideoFrame() method so it returns complete copy of the current frame rather than the object produced by Bitmap.Clone()