This is a problem I often face and it feels like there should be a trivial solution to it, but I can't figure it out (it probably doesn't help that I'm not a graphics designer either).
Step 1: Take a picture of a printed page. Typically some worksheet for school. Possibly badly photographed by another parent and sent to me on WhatsApp because my kid wasn't at school today.
Step 2: Try to print said page so that my kid can do the exercise.
Step 3: Notice that the print is awful since the photo is fifty shades of gray because of the lighting when taking it.
Now, as a human I can plainly distinguish the black letters/lines on the white page, even though at this point nothing is pure black or white there. So if I could alter the picture to contain only literally pure black and pure white pixels, all would be great.
But I just can't do it. No matter how I play around with curves and what not, no threshold is ever good enough, because the lighting on the page itself is uneven - one corner is usually much darker than the rest, and another brighter, so even though the text is perfectly legible, what counts as "white" in one place of the picture is the same as "black" in another.
How can this be done?
P.S. Since I don't do anything graphics related, I don't have a copy of Photoshop available. My usual weapon of choice is Paint.NET, but my daughter also has Krita installed, so I'd be most grateful for a solution in these programs. However I'll be happy to hear of other tools too or even of the general method itself, so that I can try to replicate it in my programs.