Menu

Tree [7e6d68] master /
 History

HTTPS access


File Date Author Commit
 Socket_Test_Plugin 2014-01-06 Andrey Filippov Andrey Filippov [99ca00] fixed package declaration
 Aberration_Calibration.java 2014-01-22 Andrey Filippov Andrey Filippov [7c2422] adding min nodes and no-motor filter
 Aberration_Correction.java 2014-02-15 Andrey Filippov Andrey Filippov [e9ffd9] added processeng of overexposed frames that had...
 Aberrations_all.java 2014-01-06 Andrey Filippov Andrey Filippov [ba4fe6] fixing warnings
 BlueLeak.java 2014-02-15 Andrey Filippov Andrey Filippov [e9ffd9] added processeng of overexposed frames that had...
 CalibrationFileManagement.java 2012-06-03 Andrey Filippov Andrey Filippov [57b328] minor fixes while testing lenses
 CalibrationHardwareInterface.java 2014-01-06 Andrey Filippov Andrey Filippov [d4e53e] bug fix
 CorrectionColorProc.java 2014-02-15 Andrey Filippov Andrey Filippov [e9ffd9] added processeng of overexposed frames that had...
 CorrectionDenoise.java 2012-03-21 Andrey Filippov Andrey Filippov [a05725] Initial release - Split Aberration_Correction, ...
 Crosstalk_Deconv.java 2014-01-06 Andrey Filippov Andrey Filippov [ba4fe6] fixing warnings
 DebayerScissors.java 2012-03-21 Andrey Filippov Andrey Filippov [a05725] Initial release - Split Aberration_Correction, ...
 DenseCorrespondence.java 2012-12-10 Andrey Filippov Andrey Filippov [25c767] modified imagest report
 Distortions.java 2014-01-23 Andrey Filippov Andrey Filippov [b95d59] bug fix
 DoubleFHT.java 2012-11-23 Andrey Filippov Andrey Filippov [38e065] Combining methods, adding subpixel scales to vi...
 DoubleGaussianBlur.java 2010-11-23 Andrey Filippov Andrey Filippov [8a56f1] Code extracted from ImageJ GaussianBlur plugin ...
 EyesisAberrations.java 2013-07-15 Andrey Filippov Andrey Filippov [6c65bd] Improving kernel averaging for multiple measure...
 EyesisCorrectionParameters.java 2014-02-15 Andrey Filippov Andrey Filippov [e9ffd9] added processeng of overexposed frames that had...
 EyesisCorrections.java 2014-02-17 Andrey Filippov Andrey Filippov [7e6d68] added debug image output
 EyesisTiff.java 2012-06-15 Andrey Filippov Andrey Filippov [8634a4] Added 16-bit integer, 32-bit integer and floati...
 Eyesis_Correction.java 2014-02-15 Andrey Filippov Andrey Filippov [e9ffd9] added processeng of overexposed frames that had...
 Goniometer.java 2013-02-04 Andrey Filippov Andrey Filippov [3050e6] bug fix
 JP46_Reader_camera.java 2014-01-06 Andrey Filippov Andrey Filippov [ba4fe6] fixing warnings
 LICENSE 2010-02-23 elphel elphel [dfcf33] Added Help, License
 LensAdjustment.java 2013-08-12 Andrey Filippov Andrey Filippov [b15f4f] working on fiel curvature measurement
 MTF_Bayer.java 2010-11-22 Andrey Filippov Andrey Filippov [c49cb0] created Eclipse project, cleaned warnings
 MatchSimulatedPattern.java 2014-01-06 Andrey Filippov Andrey Filippov [e5ea47] debugging
 PixelMapping.java 2013-07-09 Andrey Filippov Andrey Filippov [d7606c] debugging single camera mode
 PolarSpectrums.java 2010-11-22 Andrey Filippov Andrey Filippov [c49cb0] created Eclipse project, cleaned warnings
 PolynomialApproximation.java 2013-01-04 Andrey Filippov Andrey Filippov [37cd0c] Working on multi-station fitting
 PostProcessing.java 2012-11-19 Andrey Filippov Andrey Filippov [de24c8] bayesian discrimination
 README.txt 2010-02-20 Oleg Oleg [27328e] Merge branch 'master' of ssh://dzhimiev@...
 SimulationPattern.java 2012-07-11 Andrey Filippov Andrey Filippov [f63686] troubleshooting calibration, fixing bugs
 WindowTools.java 2011-09-30 Andrey Filippov Andrey Filippov [612236] commented out unused
 aberrations.java 2014-01-06 Andrey Filippov Andrey Filippov [ba4fe6] fixing warnings
 commons-collections-3.2.1.jar 2011-09-21 Andrey Filippov Andrey Filippov [2783e2] Added jar pac kages ftom commons.apache.org to ...
 commons-configuration-1.7.jar 2011-09-21 Andrey Filippov Andrey Filippov [2783e2] Added jar pac kages ftom commons.apache.org to ...
 commons-lang-2.6.jar 2011-09-21 Andrey Filippov Andrey Filippov [2783e2] Added jar pac kages ftom commons.apache.org to ...
 commons-logging-1.1.1.jar 2011-09-21 Andrey Filippov Andrey Filippov [2783e2] Added jar pac kages ftom commons.apache.org to ...
 deBayerScissors.java 2010-11-24 Andrey Filippov Andrey Filippov [b63203] minor cleanup
 escher_pattern.php 2010-09-28 Andrey Filippov Andrey Filippov [5984c6] Much faster replacement to slanted_checker.php,...
 focus_tuning.java 2010-11-22 Andrey Filippov Andrey Filippov [c49cb0] created Eclipse project, cleaned warnings
 showDoubleFloatArrays.java 2012-10-16 Andrey Filippov Andrey Filippov [1aa96f] Troubleshooting with "triclope" camera, adding ...
 slanted_checker.php 2010-09-28 Andrey Filippov Andrey Filippov [9517e8] minor cleanup
 target_circle.php 2010-07-13 Andrey Filippov Andrey Filippov [f0b600] initial release: php helper program to create t...
 target_points.java 2010-11-23 Andrey Filippov Andrey Filippov [de74e0] clean up with Eclipse

Read Me

This directory contains several plugins for the popular ImageJ image processing program to work with the images acquired with Elphel cameras. You may unzip them into "plugins" folder of ImageJ to make them accessible through this program.

JP46Reader.tar.gz contains two files: JP46_Reader.java and JP46_Reader_noscale.java. This plugin allows to open images compressed as JP46 - format designed for the raw Bayer mosaic images from the cameras. You may find more details about this format in the LinuxDevices article - http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/Elphel-camera-under-the-hood-from-Verilog-to-PHP/ . Plugin makes use of Elphel MakerNote field in Exif header that contains per-channel values of the camera sensor analog gains, black levels and gamma, it takes decompressed 8 bpp images and um-applies gains and gammas resulting in the 32bpp (float) values that are very close to the amount of light that each pixel acquired. 

For the best performance you may acquire images with the gamma set to 0.5 (sensor noise matched value) and analog gains set for the white balance (automatic or manual), so pixels of each color will use all the output range of 8 bits (compressed).

Crosstalk_Deconv.java.tar.gz is designed for experimenting with correction of inter-pixel crosstalk. It does not include automatic crosstalk measurement, that values have to be entered to the program in "Configure" menu. It is possible create test images, apply and un-apply crosstalk - all the modern sensors have significant amount of such crosstalk that both degrades resolution and colors in the digital images.

MTF_Bayer.java.tar.gz - plugin for measuring camera resolution. It started from the SE_MTF plugin for ImageJ (http://rsbweb.nih.gov/ij/plugins/se-mtf/index.html), with added functionality focused on measuring Bayer mosaic images. It accepts such images as monochrome  and processes multiple edges in the selected rectangular area accumulating results from both black-to-white and white-to-black edges (separately). And as the camera resolution can be different in different directions, the plugin can accept near-horizontal slanted edges also. When the "Calculate MTF" button is pressed it detects (and counts) near-vertical edges that run all the selection height, then does the same in the horizontal direction. After that it selects the direction that has more edges (if any) running all the selection height/width.

With the edges are detected plugin approximates each edge by a quadratic (A*x^2+B*X+C) parabola as straight edges on the target become curves because of the lens distortions. Those edges approximations are calculated either individually for each color component (if "Monochromatic" mode is not selected) or together (useful when the camera had color band-pass filter so all the light that reached pixels was approximately the same wavelength and the chromatic aberrations of the lens can be neglected.

With the approximated edges multiple sensor rows/columns are binned with each bin being 1/4 of the pixel size (similarly to ISO-16067-1), the result of the binning is shown in edge-spread function (ESF)  plots and/or tables - separately for each color and edge direction. Green lines on the plot shows green pixels in red rows of Bayer pattern, while cyan color is used for green in blue rows). The derivative of the ESF is line spread function (LSF) that also can be displayed - both in the same scale as the input pixel values or normalized to [0.0..1.0] interval for every color. The result modulation transfer function (MTF) is calculated as the absolute value of the Fourier transform of the LSF.

Some sample files that can be used with the plugins are available here - http://community.elphel.com/files/ImageJ_plugins/sample_files/ The images include shots of nearly-vertical (and nearly-horizontal) black/white stripes, acquired with red, blue, green filters (and no filter at all). These images can be opened with JP46_Reader.java plugin, them processed with MTF_Bayer.java  (you need to select rectangular area on the image that includes stripes and press "Calculate MTF" button). 

The most recent versions of these programs are available for download from the Git repository - http://elphel.git.sourceforge.net/git/gitweb.cgi?p=elphel/ImageJ-Elphel