[](https://www.python.org/)
| Sr | Scene | Hazy input | Dark channel prior | **DCP + guided refine** | CLAHE (contrast only) | Multi-scale Retinex | Gamma curve (control) | Oracle |
|---|---|---|---|---|---|---|---|---|
| 1 | whitewater raft · people, spray, close rock | 11.5 dB | 22.1 dB | **23.1 dB** | 13.4 dB | 8.8 dB | 16.0 dB | 50.7 dB |
| 2 | old street · receding to a vanishing point | 12.7 dB | 21.8 dB | **23.9 dB** | 16.5 dB | 13.2 dB | 17.1 dB | 50.8 dB |
| 3 | tropical island · sky-dominant | 13.2 dB | 22.7 dB | **23.6 dB** | 13.7 dB | 8.6 dB | 18.8 dB | 50.7 dB |
| 4 | motocross · near subject, shallow depth | 10.8 dB | 20.5 dB | **21.2 dB** | 12.8 dB | 9.1 dB | 15.1 dB | 50.7 dB |
`mermaid flowchart LR A[Clear image
known exactly] --> B["Add haze
I = J·t + A·(1−t)"] B --> C[5 dehazing methods] B --> D[Oracle
handed the TRUE transmission] C --> E[Score vs the original
AND vs the true transmission map] D --> E E --> F[Did it remove haze,
or just add contrast?] `
Because the haze is generated, two things are known, not one:
That second row is what separates this from a contrast comparison. "Looks clearer" is satisfied by any histogram stretch; recovering t is only satisfied by actually inverting the scattering.
---
Code and full results on GitHub (code private)
Every number is read from the file the run produced. github.com/hammasbuilds · kaggle.com/muhammadhammas13