OpenALPR processes the plate image first just to verify that it is, in fact, a license plate and to figure out the edges/rotation. It also figures out whether the characters are inverted (i.e., dark on light or light on dark characers). After that, it straightens and deskews the image so that it looks like it's a head-on capture.
Later, in charactersegmenter.cpp, it creates a histogram from this straightened image. This is what determines the likely character positions. Anywhere there is appreciable character content followed by whitespace, it determines is a character. There are filters here for character height (e.g., ignore dashes) and character width (e.g., ignore long, skinny lines at the left and right edge since these could be plate boundaries).
I just downloaded one of your images and ran it on debug using these settings in openalpr.conf:
[debug]
general = 1
timing = 0
state_id = 0
plate_lines = 0
plate_corners = 0
char_regions = 0
char_segment = 1
char_analysis = 0
color_filter = 0
ocr = 0
postprocess = 0
show_images = 1
The image is attached.
Here are the results from OpenALPR (notice the missing "1" at the end).
plate0: 10 results -- Processing Time = 270.193ms.
- BUS902 confidence: 84.979 template_match: 0
- BUS9D2 confidence: 81.8859 template_match: 0
- BUS9020 confidence: 80.6593 template_match: 0
- BUS902D confidence: 80.1146 template_match: 0
- BUSS02 confidence: 78.9764 template_match: 0
- BUS9Q2 confidence: 78.507 template_match: 0
- BUS902Q confidence: 78.2764 template_match: 0
- BUS902H confidence: 78.1059 template_match: 0
- BUS902G confidence: 78.0941 template_match: 0
- BUS902U confidence: 77.8298 template_match: 0
It's using EU as the country. If you notice, the plate area is way too wide, this is because the European plate detector is looking for wider plates than Brazilian. If you retrain your detector for Brazil, this should get you a much tighter bounding box.
Secondly, it looks like the character segmenter has got it correct. It's disqualified all of the characters that aren't part of your plate content (for a variety of reasons), leaving you with BUS9021. Each of these characters will go through to OCR. However, The "1" is not making it through to the final recognition since it's an unrecognized character. The European plates have no character that is a straight line like this -- Neither the "1" fonts, nor the "I" fonts look like that. So, OCR cannot recognize it. If you retrain the OCR for your Brazilian font, that should help as well.
I wouldn't mess with the Tesseract text2image utility. The OpenALPR misc utility does all of that for you. It helps you tag characters in the plate, then it puts together a proper Tesseract tiff and box file automatically. Using other programs or doing this manually (yuck!) would be very difficult.
The changes in plate style (reflective and non-reflective) should not be a problem. Just train the detector for both by including lots of images of both styles. As long as the dimensions are the same, that should not be a problem.