pfstmo_mantiuk06(1)

πŸ’– pfstmo_mantiuk06 β€” tone mapping in the contrast domain πŸ’–

okay bestie, so this is the manual page for pfstmo_mantiuk06, straight out of the General Commands Manual section. It's giving "I make your HDR pics look good in the contrast domain" and honestly? obsessed. πŸŽ€


✨ NAME ✨

pfstmo_mantiuk06 β€” tone mapping in the contrast domain


🌸 SYNOPSIS 🌸

pfstmo_mantiuk06 [--factor <val>] [--equalize-contrast <val>]
[--saturation <val>] [--verbose] [--quiet] [--help]

πŸ¦‹ DESCRIPTION πŸ¦‹

So this command ships two tone mapping operators, and they're both main character energy: contrast mapping and contrast equalization. Both of them can pull off very sharp images (like, sometimes non-photorealistic sharp, no cap) while keeping contrast reversal β€” aka those ugly halo artifacts β€” to a minimum. πŸ’…

Wanna read the actual receipts on these operators? Here's the paper:

Rafal Mantiuk, Karol Myszkowski, Hans-Peter Seidel. A Perceptual Framework for Contrast Processing of High Dynamic Range Images In: ACM Transactions on Applied Perception 3 (3), pp. 286-308, 2006. http://www.mpi-inf.mpg.de/~mantiuk/contrast_domain/

This version contains several performance improvements made by Ed Brambley. slay, Ed. 🫢

If you find this TMO useful in your research project, please cite the paper above. (yes really, cite it, it's the polite thing to do πŸ₯Ί)

⚠️ heads up: the result of this TMO requires gamma correction. Do not skip that step bestie, it's literally not optional.

πŸ‘‘ OPTIONS πŸ‘‘

  • --equalize-contrast <val>, -e <val> β€” use the contrast equalization algorithm. If you don't pass this, the contrast mapping algorithm is what you get instead. The contrast equalization algorithm needs a scaling parameter that controls how much sharpenning happens, and it can range from 0.1 (very sharp) to 1 (less sharp).

real talk: contrast equalization gives you very sharp but also less natural images. and it may also enhance noise in low-quality images. πŸ™ˆ so like, vibe check your source image first.

  • --factor <val>, -f <val> β€” contrast scaling factor (values 0-1) that determines how much the contrast magnitudes should be reduced. This option cannot be used with equalize-contrast. The lower value results in a sharper image. Default value: 0.3
  • --saturation <val>, -s <val> β€” saturation correction (values 0-2). The lower value results in stronger desaturation. Default value: 0.8
  • --verbose, -v β€” print additional information during program execution.
  • --quiet, -q β€” do not display progress report.
  • --help, -h β€” print list of commandline options.

🌈 EXAMPLES 🌈

pfsin memorial.hdr | pfstmo_mantiuk06 -f 0.5 | pfsgamma -g 2.2  | pfsout
memorial.png

Tone map an image using contrast mapping and save it in the PNG format. πŸ’Ύ

pfsin memorial.hdr | pfstmo_mantiuk06 -e 0.5 | pfsgamma -g 2.2  | pfsout
memorial.png

The same as above, but use the contrast equalization algorithm. ✨

pfsin memorial.hdr | pfstmo_mantiuk06 -f 0.5 -s 1 | pfsview

For optimal results you can output the result to pfsview and manually adjust the dynamic range window. Then save the image in pfsview by selecting 'Save image...' from the 'Frame' menu or pressing 's'. πŸŽ€

pfsin bridge.jpg --linear |  pfsclamp --min 0.007 | pfstmo_mantiuk06 |
pfsview

Enhance the low-dynamic range image 'bridge' and view the result. The pfsclamp command reduces noise for low code values. 🧚


πŸ’œ SEE ALSO πŸ’œ

pfsgamma(1) pfsclamp(1) pfsin(1) pfsout(1) pfsview(1)


πŸ’€ BUGS πŸ’€

Please report bugs and comments to the pfstools discussion group (http://groups.google.com/group/pfstools). they're nice, fr fr 🫢


and that's the whole page bestie, tysm for reading πŸ’– this was pfstmo_mantiuk06(1) from the General Commands Manual β€” mwah, go gamma correct your images, ily, bye πŸ‘‘βœ¨