Welcome to the Info, Help and Download Page of the App LPH


The project LPH has been ceased due to legal uncertainties and a high support demand. The download and upgrade to the Pro version is not possible any more. Please refrain from donations of any kind!


The app LPH can determine the resolution of a camera / lens combination. The resolution by ISO 12233 is a measure of the details in a photo and is given as Lp/PH „Line pairs per Picture Height“. The use of the app is to compare camera / lens combinations and to optimize settings like ISO, aperture, compression etc. It gives answers to questions like:

- how many true megapixels are in a picture?
- what is my best lens?
- what is the best aperture to use with a specific lens?
- how much will I loose with a high ISO setting?
- how much better is RAW vs. JPG?
- is the autofocus working properly?

To do this, a test chart will be shot and analyzed by LPH.



The app runs on Windows and has been tested under Win XP (32 bit), Win 7 (32 und 64 bit) and Win 10 (32bit und 64bit). No more libraries are required.


Test Chart

The test chart is a so called „Siemensstern“ that consists of 36 pairs of beams. These are shaped just black and white or follow a sinusoidal gradient. LPH can process both kinds of test charts, but the latter gives better results.

Siemensstern 400 rec                Siemensstern 400 sin

Picture 1: Siemensstern with 36 pairs of beams. Left: black and white, right: sinusodial gradient

Test charts can be bought (rather expensive) or can be printed in DIN-A4 (or letter format) by an acceptable printer (≥ 600dpi) on photo paper using highest quality settings. For printing you can use my test chart (link below). Alternatively, you can order a print with a picture service. The test charts must be absolutely flat, so glue them on a firm surface.

The test charts should not be shot too closely because this would test the resolution of the printer instead of the camera. Optimally the Siemensstern covers a third to a tenth of the picture height. The program warns if the optimum measuring range is not met.

Of course it is possible to use several Siemenssterns at once to cover several picture areas in one test picture. The stars have to be arranged on an area of approx. 1.5m x 1m.


The Camera should be mounted on a tripod and adjusted in a way that the image plane is parallel to the test chart. The chart must be illuminated evenly without reflections of the light sources. The built in flash is not suitable for that reason. For example 2 flashes or other light sources in a 45° angle will be fine. If the camera supports a self-timer if can be used to reduce vibration. Motion blurred pictures are not useable. In order to avoid phase auto focus errors the use of live view is recommended.


After downloading the picture onto the PC open it with the button “Open” or via drag and drop. Following picture formats are supported: JPG, PNG, BMP, TIF. RAW-formats cannot be processed directly, they have to be converted into TIF. In general a JPG-picture converted from a RAW-format provides a higher resolution than a JPG-picture straight out of the camera.

Picture 2: App LPH with a test picture

Following EXIF data is extracted from the picture and displayed: camera model, minimum aperture as a clue of the used lens, shutter speed, focal length, ISO and aperture. Not available or maker-specific EXIF data are displayed as “n/a”. EXIF data are not taken into account in the measurement; they are only used to keep the overview. The pro version allows to override resp. manually input this data to store it in the log file.

You can change the size of the picture by the mouse wheel and pan it by moving the mouse with pressed left mouse button. A click within the inner part of the Siemensstern will start the analysis process. On a successful detection of the star the text “successful” and the value of the resolution “Lp/PH” resp. “MTF10 [Lp/PH] will be displayed.

Picture 3: App LPH with results

Additionally the center of the detected star will be displayed. The value “MPix” resp. “MTF10 [MPix]” indicates the effective megapixel number in the picture.

A further measured value is MTF50, which indicates the line pairs with the contrast decreasing by 50%. This value is close to the subjective sharpness.

More possible status values are:

“not successful - click in the star center”: the Siemensstern could not be identified. This can have following reasons:
- the outer area has been clicked. It is necessary to click in the inner half of the circle.
- the star is not valid (i.e. has not 36 pairs of beams)
- the contrast is very low

„successful – warning low contrast“: the contrast is too low. Measurements values can be inaccurate. Possible reasons are:
- The contrast oft he Siemensstern in the picture is too low
- The Siemensstern is too small in the picture, i.e. too far away

„successful – warning too close“: the star is bigger than half the picture height. Usually the measurement values are too low.

„invalid file“ or no value: the file is not valid

If calculation is not initiated, the mouse could have been moved slightly during the mouse click. This calls the panning function instead of the analysis function.

Deviations of successive measurements in the range of some percents are normal. Possible reasons of bigger variations are:
- motion blur
- too low contrast
- reflections of light
- uneven test chart

Comparison with other measurements

Other measurement programs can use different measurement units. The following occur:

Lw/PH:    Linewidth per image height, these values ​​are twice as large as the line pairs per image height.

Lp/mm:    Linepairs per millimeter: In analog photography, it was common to see measure the pairs of lines per mm on the negative or slide. For the conversion, the value Lp/PH is divided by the sensor height in mm, ie 24mm for full format and approx. 15mm for APS-C formats.

Lw/mm:   Linewidth per millimeter: For the conversion, the value Lp/PH is divided by half the sensor height in mm, ie 12mm for full format and approx. 7.5mm for APS-C formats.

Lp/inch: Linepairs per inch: as above, dividing the Lp/PH by the sensor height in inches, that is, 0,94 for full format and 0,59 for APS-C formats.

c/mm:      Cycles per mm: Cycles (= cycles) are identical to line pairs, such as Lp/mm

c/p:          Cycles per pixel: here line pairs are related to the number of pixels. For the conversion, the value Lp/PH is divided by the number of pixels in the image height.

Attention: every program or photo magazine uses its own standards and procedures for evaluation. The absolute results can therefore only be compared to a limited extent. LPH was developed primarily for carrying out comparative measurements on its own equipment.


Pro Version


The project LPH has been ceased due to legal uncertainties and a high support demand. The download and upgrade to the Pro version is not possible any more. Please refrain from donations of any kind!


- 16 Bit pictures (TIF-format). Appropriate for RAW picture analysis (after conversion into TIF format).

- Data logging and data plots. Are switched on and off by button “Log”. The following selection window appears

Picture 4: Log/Plot selection window      

With activated “Result Log” (default) following data are stored in a text file, separated by semicolon:
filename, status, LP/PH, MPix, Camera, MinAperture, Speed, FocalLength, ISO, Aperture, CenterX, CenterY.
The name of the logfile is „LPH_<Datum>_<Uhrzeit>.csv. It is located in the same directory as LPH.EXE and is suited for further processing by programs like Microsoft Excel®. For example measurement diagrams can be quickly produced.

When the "MTF Plot" is activated, the graphic file of the MTF ("Modulation Transfer Function") is generated. This displays the measured contrast at different resolutions. The ISO resolution values are displayed as MTF10, as well as the MTF50.

Picture 5: Example of a MTF-Plot

For this plot function (and there will soon be more) the free tool "gnuplot" is needed. Please visit http://www.gnuplot.info, download at https://sourceforge.net/projects/gnuplot/files/gnuplot/. Please install the ".exe" version rather than the “.zip” version (for example, gp506-win64-mingw.exe), as these assign the file extension ".gpl" to the program gnuplot. Files created with gnuplot are well suitable for insertion into other documents or web pages.

If "Instant Plot" is activated, the plot is executed immediately after the measurement, otherwise only the plot file <picturename>.gpl is generated.

Clicking on "Log / Plot" deactivates all logging and plot functions.

More Plot Functions:

The free program “gnuplotist required (s.a.).

Area: Siemensterns are recorded in different positions - either in one or in several photos. Multiple photos each with one image in different positions can be run in batch mode (Attention: focus the first image on the center and disable the AF). For a multiple-star image (focus on the middle star), the batch operation does not work, all the stars have to be clicked one at a time.

2D or 3D plots are created that show, among other things, the sharpness drop at the edge regions or the decentering of the lenses. If "Instant Plot" is activated, the plot is executed after deactivation of the log function, otherwise only the plot file AREA_ <Date> _ <Time> .gpl is generated.

Picture 6: Area-Plots in 2D and 3D

Aperture, Focal Length, ISO, Filename: After analyzing a several pictures, 2D plots are generated which represent the optical resolution depending on aperture, focal length, ISO sensitivity or file name. If "Instant Plot" is activated, the plot is executed after deactivation of the log function, otherwise only the plot file * .gpl is generated.

Picture 7: Examples of data plots vs. Aperture and file name

User defined: Here you can define other diagrams, for example: Optical resolution depending on blood pressure, air pressure or tire pressure… The label of the X axis is defined with the XLabel field. "Text" is activated for alphanumeric values; for numerical values choose "Lin" or "Log" for linear or logarithmic representation. The values are entered into the "Speed [sec]" field before the measurement. Since this must be done before each measurement, batch operation is not useful here.


- Batch operation: multiple pictures can be analized automatically. Therefore the “Open” button allows the selection of multiple files. Alternatively multiple files can be “dragged and dropped” at once. Each picture is searched for a Siemensstern. Data logging is activated if not done yet. However the batch operation is not useful with pictures containing more than one Siemensstern.

Picture 6: App LPH Pro with activated Auto Mode and Data Logging

- Tethering mode (Auto): Tethering copies the photos from camera to PC immediately after the shot by USB cable or WIFI. Tethering itself is not included in LPH. There are multiple solutions provided by the camera producers or freeware like digiCamControl (http://www.digicamcontrol.com/). During activation via button “Auto” a directory has to be selected which is being monitored. A new detected file in this directory is loaded, automatically searched for a Siemensstern (as in batch operation) and the result is displayed. In this mode the result is available only a few seconds after the shot which makes it very convenient for optimizations like auto focus tuning.

Optical Stuff (only who wants to know)

Algorithm: search the center of the star, determine the size of the star, adjust a sinusoid curve to the brightness of a circle around the center of the star and determine the contrast as the amplitude of the sine function, find the radius of the circle at which the contrast drops to 50% and 10%, respectively, and convert the value to the image height.

Self-printing of the Siemensstern: Because of the fractal behavior on the Siemensstern (it looks the same as a larger star in the interior), the exact distance is not decisive. For example, a DIN-A4 (or letter-size), 600 dpi print taken at 20% of the picture height by a 24 megapixel camera maps 36 printer dots to one camera pixel so that the printer resolution is negligible compared to the camera resolution.

Distance: provided a Siemenstern printed on DIN A4 (width 21cm) and a 50mm lens on a full-size camera, then an image of the star results in 20% of the image height at a distance of 219 cm. Extend with crop sensors (Nikon: 1.5, Canon 1.6) and also multiply proportionally with other focal lengths (eg. 150mm by 3).
In general: Distance (20%) = 5 * 21cm * focal length (mm) / sensor height (mm)

MPix (renamed to MTF10 [MPix]) is calculated with 2*MTF10 (lines in height) * 3*MTF10 (lines in width at image ratio 3: 2), thus 6*MTF10˛.


The algorithms follow ISO 12233 but have not been certified. The app has been developed and tested carefully. The purpose of this app is to enable private users to qualitatively check their equipment. I do not guarantee the correctness of the data. Serious decisions may not be made on the basis of measured values with this program. Any warranty, liability, guarantee, etc. are excluded.

Virus Warning?

A virus warning at download has been reported, i.e. the virus scanner „avast“ showed the alert „DRep“ and blocked the installation (thanks Claus for the information). I checked my app at “virustotal.com” with more than 50 virus scanners as clean. “DRep” abbreviates “Domain reputation” and means that the download domain is not trustable because it is not a big one as “chip.de” or “microsoft.com”. Remedy would be a certification costing several hundreds of Euro each year. If you feel unconfident please check yourself at virustotal.com or do not use the app!

Windows 10 shows a very impressive box. Click at „More information“ and “Run anyway“ to start LPH.





First release for beta tests


completed installation packet
fixed crash on uncomplete EXIF data


works also with portrait oriented pictures
improved algorithms for center and radius search
more stable results
supports JPG, PNG, BMP and TIF formats


support of a standalone app


removed overflow error
removed jumpy results when clicked in an area of about half radius.


Algorithm improvements for higher measurement accuracy


MinAperture value corrected


invalid values for min_aperture, aperture and focal length are now shown as “n/a”


New license model: standard version is freeware (before shareware) and pro version (donation expected)
pro version: data logging
pro version: batch operation
pro version: tethering mode
portable app: no libraries required anymore
new design


Measurement of MTF50
Pro version: log files are stored in the same directory of the photos
Pro version: automatic search intensified
Pro version: Logfiles are closed with the "Log" button


Additional button to check for updates
pro version: manual input on the meta data


Bugfix: some Siemenssterne - especially at low contrast - were not detected
Pro version: MTF-plot (via gnuplot)


Bugfix: reset of the zoom factor when a new picture is loaded
Renamed „Lp/PH“ to „MTF10 [Lp/PH]“ to be consistent to MTF50 – no algorithm change!
Pro version: complete star search, many graphical plots (via gnuplot)
Pro version, Bugfix: changed unlocking algorithm


Renamed “MPix” into “MTF10[MPix]”
Pro-Version: consistent value naming and more clearly format in the .csv-file