Matlab edge detection - of text!
Show older comments

after a lot of tryouts with different filters i have yet to accomplish getting a black and white image of the picture above.
I would like to have the text as readable as possible but using the 'log' filter is just not enough mixed with imadjust and midfilters
while the others doesnt help at all ,
could use a suggestion , thanks
1 Comment
John Petersen
on 29 Nov 2012
The image looks very clean and not too noisy. Can you try dividing the image into squares and taking the mean of the square. Reassign pixels that are a threshold above the mean to black and below a threshold from the mean to white. You would have to decide the size of square and threshold level.
Answers (1)
Image Analyst
on 29 Nov 2012
0 votes
You might want to try getting rid of the background gradient and maximize contrast by using CLAHE (contrast limited, locally adaptive histogram equalization), accomplished by the function "adapthisteq()" in the Image Processing Toolbox.
5 Comments
Despairy
on 30 Nov 2012
Image Analyst
on 30 Nov 2012
Not bad so far. There's some noise to clean up. Can probably get some of that by using bwareaopen() or trying to detect lines of text by summing horizontally. I don't really know OCR algorithms so I'm not sure why you want only the edges of the characters and not the whole character. How can that be an improvement? If these some OCR algorithm that you're trying to follow that wants only the edges? If so, have you tried thresholding and then using bwboundaries() or bwperim()?
Despairy
on 30 Nov 2012
Image Analyst
on 30 Nov 2012
Why is the image so bad in the first place? Can't you obtain better images with more uniform illumination? How about using a scanner, or a nice light booth with flood illumination and the inside painted all white?
Despairy
on 30 Nov 2012
Categories
Find more on Contrast Adjustment in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!