AForge.NET Framework 2.2.4 Release Notes
Version updates and fixes:
- 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.
- Fixed Complex.Phase property, so it provides proper value for cases when real part is less than zero.
- 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
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.
- 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.
- 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.
- 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.
- 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.
- 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().
See release notes of 2.2.3 version to get information
about changes in the previous version.