Hi I have a related question so I hope you don’t mind me asking it here.
I have expermimented with ImageBinarizationHints but you are right, when the barcode has a lot of damage, this only helps so much. I also use image processing to despeckle/deskew the image. I wrote a multi-pass system to try the bare image first and then apply various techniques (including ImageBinarizationHints) to try and clean up the images if the barcodes are not initially recognized. I always ask clients to scan at 300dpi (higher would be prohibitively expensive in processing time) but they often do scans of scans so the quality degrades.