I use tesseract for serial number recognition. This works an acceptable, common problem, like false recognition of zero and "O", 6 and 5, or M and H exist. In addition, tesseract adds spaces to recognized words where there is no place in the image. The following image is recognized as "HI 3H" .

This image leads to "FBKHJ 1R1"

So tesseract added a space, although there is no space in the image. Is it possible to parameterize the behavior of tesseract intervals?
Edit
Sorry, forgot to add that I also have serial numbers that include spaces. Therefore, I cannot remove all spaces inside the recognized serial number.
For example, the following image containing a space in the serial number appears after tesseract recognition in: J4 F1583BB . In addition, character recognition is false, space is recognized with this image.

My actual options for tesseract:
tesseract::TessBaseAPI tess; tess.Init(NULL, "eng", tesseract::OEM_TESSERACT_ONLY); tess.SetPageSegMode(tesseract::PSM_SINGLE_BLOCK); tess.SetVariable("tessedit_char_whitelist", "ABCDEFGHIJKLMNOPQRSTUVWXYZ012345789"); char* out = tess.GetUTF8Text(); string text = string(out);
Edit
From the already existing answers, it can be seen that the space between "J" and "I", for example, seems a little larger than between other characters. The type of font I selected is a Monotype font. The reason is because I thought this helped tesseract for character recognition. The drawback of this type of Monospace font, where each character has the same width, is that the core (space between characters) changes. See an example image of the following source. Source

What type of font do you think will achieve the best recognition results?