- Thread-safety fixes for all nodelets.
Most critically, onInit() and connectCb() could race, resulting in a failure to subscribe to the input data.
- Lock on dynamically reconfigurable parameters
- Lowered X/Y coverage thresholds to 70%. 80% proved often too stringent in practice.
- Permit calibrating with 40+ samples, even if not all parameter bars are green.
Reverted unintended change in behavior from Diamondback. By default, we again use 2 radial distortion parameters, not 3. The third k parameter is not needed for most cameras and increases the risk of calibration failure due to converging to bad local minima.
Radial distortion can now be controlled with single argument --k-coefficients (default: 2) instead of --rational-model, fix-k1, fix-k2, etc.
Fixed cameracheck.py numpy array to cvMat conversion error. <<Ticket(ros-pkg 5133)>>
crop_decimate nodelet sets roi.do_rectify correctly.
- Bug fixes to crop_decimate nodelet.
This summarizes important new features and changes since Diamondback (1.4.x series). For a complete list of changes including bug fixes, see the 1.5.x changelists.
This release includes many improvements to camera_calibration, which is now faster, more robust, more configurable, and gives better feedback to the user. image_proc has gained new edge-aware and VNG debayering algorithms and dynamic_reconfigure support.
P can now differ from K for monocular cameras. We now use the optimal new camera matrix, which optimizes the viewport of the rectified image so that it contains the maximum amount of good data.
- New sampling heuristic for selecting checkerboards: add a sample only if it's sufficiently different from every previous sample. Sample set is "good enough" if each individual parameter has adequate coverage.
Added options to control calibration optimizer. Can now use rational polynomial model for high-distortion cameras. <<Ticket(ros-pkg 4853)>>
- Better visual feedback:
- During calibration, color coding for parameter bars.
- After calibration, show linear/epipolar error and checkerboard on rectified image.
- Improved calculation of the checkerboard parameters (X, Y, size, skew).
- Speed improvements to checkerboard detection.
- New crop-decimate nodelet for simulating binning and ROI in software.
- Debayer nodelet
Can choose debayering algorithm via dynamic_reconfigure, one of:
- Bilinear - the default fast algorithm.
- VNG (new) - Variable Number of Gradients. A slow but high quality algorithm.
Edge-aware and edge-aware weighted (new) - slightly slower than bilinear, but mostly avoid "zipper" artifacts on edges. These algorithms were written for the Kinect and are not yet integrated into OpenCV, so they only support GRBG8 in this release.
- Supports new 16-bit encodings and RGBA/BGRA encodings.
Supports YUV422 encoding.
- Rectify nodelet
Can choose interpolation algorithm via dynamic_reconfigure.
Fill out valid_window field in disparity images. <<Ticket(ros-pkg 4973)>>
- Changed handling of floating point images to generally see something reasonable even when the image is not scaled to [0.0, 1.0].