Is there any solution with opencv which complete forms ?
I have to make a clear picture with opencv to apply then OCR with tesseract .I try many methods but picture still have incompletes letters (so i will not be able to identify theses letters by OCR ). t tried cvtColor to gray -->fastNlMeansDenoising -->adaptiveThreshold-->Canny-->and finally find and draw contours
-->adaptiveThreshold-->Canny--> makes no sense. Both are binarisation methods, so adaptiveThreshold-->findContours should do the same job.
Have you tried the other suggestions I posted here?
I don't understand how i should use cv::niBlackThreshold() in my case let's say the picture presents broken characters(i read the article but it propose differents methods a) Niblack b) Sauvola c) Wolf d) Feng e) NICK ).I am really confused
The article should give you an idea what value range for k you can use and how the results could look like. On Github I have posted a code snippet, where I have implemented the other methods (Sauvola, Wolf and NICK) (not sure if the implementation is correct, but the results looked good). You have to replace the switch cases (CV_THRESH_SAUVOLA,...) by numbers or define it by yourself.
I think the issue with the broken edges is not that trivial and you can't solve this by just doing filtering and binarisation.
My approach would be, to focus only on the complete characters in the first step. Then you can extract the character size, row position, etc... With these information you can extrapolate the regions which contain the broken characters and then deal with them in an individual way.