[Elphel-support] camera image undistortion rectification
Gergely Debreczeni
gergely.debreczeni at kishonti.net
Fri Jul 12 04:51:36 PDT 2013
Hello,
Thanks for your support so far. During the calibration process we observed some
strange feature on the image obtained by the camera. It shows some strange
small rectangular repetitive pattern all over the image.
We
- set jpeg quality 100%
- mono
- full (2592x3888) resolution and
then, we take a picture using http://<camera_ip>:8081/bimg
The picture can be seen in:
http://www.grid.kfki.hu/afs/gdebrecz/web/calib_0_left.png
Our questions:
- What is the reason of these patterns ? Is it the jpg compression ?
(We did many picture also in much better light conditions showing the same feature.)
- Is there a significant quality difference between the 100% quality jpg and the RAW image ?
- We also observe this on the streamed video. What kind of filter do you propose to get rid of it ?
thanks a lot again for you help,
Gergely
________________________________________
De : Support-list <support-list-bounces at support.elphel.com> de la part de support-list <support-list at support.elphel.com>
Envoyé : mercredi 10 juillet 2013 22:18
À : Elphel List
Objet : Re: [Elphel-support] camera image undistortion rectification
> a.) For the calibration we use a giant LCD screen with a chessboard displayed on it, so there is
> no problem of the material bend / thermal expansion, etc...
We used LCD screen for measuring pixel cross-talk (photoelectrons from red pixel migrate to next pixels, green and blue - less so), but thought it is too small for the geometric calibration (we only calibrated fixed-focus lenses)
> b.) Can you please point me to the modell used in your calibration / undistortion process ?
> The one used on OpenCV and Calib. Toolbox [1] seems unsufficient for this lens.
We use our own calibration files. Each file (in tiff format) includes metadata with radial distortion model parameters and the image itself is the residual errors (after radial distortion) in X and Y directions, saved with 1/4 resolution. The same file also has the vignetting info (per color component). There is some description/examples in the blog posts.
There are sample calibration files uploaded on our web server, to look at them you may open them using imageJ. Metadata is available if you install our plugins (http://wiki.elphel.com/index.php?title=Elphel_Software_Kit_for_Ubuntu#Installation_of_Elphel_plugins_for_ImageJ ), then in ImageJ select:
Plugins -> Compile and Run -> ImageJ-Elphel -> JP46_Reader_camera.java.
Then open the calibration file (downloaded from http://community.elphel.com/files/eyesis4pi/imagej/sensor_calibration_files/ ), such as c13ff-08.calib-tiff, make sure it is in focus (i.e. click on it) and in the JP46 plugin window click "Decode image info to properties" - that will open parameters and their comments (see example below).
> c.) All your calibration procedure involves laser points ? Or are you performing calibration
> also using only image information (without laser) ?
Yes, lasers are used for absolute matching of the periodic target grid to the image (to the nearest grid node) - our software really needs them.
> d.) When you say that 'the target is calibrated' you mean that the pattern points position
> is measured with an independent method ? (i.e. for example the real world position of the
> corners of the chessboard).
Target is calibrated simultaneously with the camera. But when calibrating multi-sensor cameras and single-sensor ones we use the target calibration from the multi-camera system. Eyesis4pi has 2 sensors near the bottom of the tube body, about 850mm from the center of the optical head. That gives higher precision of the target pattern measurements than just from a single camera from multiple positions.
Below is the metadata from the sample sensor calibration file (parameters are in no particular order, unfortunately):
------------
py0 958.7668601641257
height -0.6207874764096263
subchannel 1
comment_subcamera number of the subcamera with individual IP, starting with 0
distortionRadius 2.8512
comment_subchannel number of the sensor port on a subcamera (0..2)
focalLength_units mm
distortionA8 0.0
elevation 0.4456435396130725
comment_channel number of the sensor (channel) in the camera
distortionA7 0.0
comment_azimuth lens center azimuth, CW from top, degrees
distortionA6 0.029856778749971072
distortionA5 -0.04255900732648876
comment_heading lens heading - added to azimuth
comment_arrays Array corrections from acquired image to radially distorted, in pixels
comment_radius lens center distance from the camera vertical axis, mm
px0 1263.8849164543408
VERSION 1.0
pixelCorrectionDecimation 4
pixelCorrectionWidth 2592
comment_elevation lens elevation from horizontal, positive - above horizon, degrees
focalLength 4.508217484459606
comment_roll lens rotation around the lens axis. Positive - CW looking to the target, degrees
pixelSize_units um
comment_height lens center vertical position from the head center, mm
comment_px0_py0 lens center on the sensor, in pixels
roll 90.94386362046363
distortionC 0.0058847953953892335
distortionB -0.07076971111019477
distortionA 0.05963687885890879
comment_decimation when decimation use integer divide to find the index, corection values are in non-decimated pixels
entrancePupilForward -1.1988297137736406
distortionRadius_unuts mm
channel 8
azimuth -0.5805897763960011
heading -0.7690861475199168
radius 55.496144447474606
subcamera 0
pixelSize 2.2
distortion_formula (normalized by distortionRadius in mm) Rdist/R=A8*R^7+A7*R^6+A6*R^5+A5*R^4+A*R^3+B*R^2+C*R+(1-A6-A7-A6-A5-A-B-C)
pixelCorrectionHeight 1936
arraysSet true
comment_entrancePupilForward entrance pupil distance from the azimuth/radius/height, outwards in mm
maskSet true
_______________________________________________
Support-list mailing list
Support-list at support.elphel.com
http://support.elphel.com/mailman/listinfo/support-list_support.elphel.com
More information about the Support-list
mailing list