Я пытаюсь распознать персонажи номерных знаков с помощью OCR, но мой номерной знак имеют худшее качество.
Я пытаюсь как-то улучшить распознавание символов для OCR, но мой лучший результат: результат.
И даже тессеракт на этой картинке не распознает какого-либо персонажа. Мой код:
#include <cv.h> // open cv general include file
#include <highgui.h> // open cv GUI include file
#include <iostream> // standard C++ I/O
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <string>
using namespace cv;
int main( int argc, char** argv )
{
Mat src;
Mat dst;
Mat const structure_elem = getStructuringElement(
MORPH_RECT, Size(2,2));
src = imread(argv[1], CV_LOAD_IMAGE_COLOR); // Read the file
cvtColor(src,src,CV_BGR2GRAY);
imshow( "plate", src );
GaussianBlur(src, src, Size(1,1), 1.5, 1.5);
imshow( "blur", src );
equalizeHist(src, src);
imshow( "equalize", src );
adaptiveThreshold(src, src, 255, ADAPTIVE_THRESH_GAUSSIAN_C, CV_THRESH_BINARY, 15, -1);
imshow( "threshold", src );
morphologyEx(src, src, MORPH_CLOSE, structure_elem);
imshow( "morphological operation", src );
imwrite("end.jpg", src);
waitKey(0);
return 0;
}
И мой вопрос: знаете ли вы, как добиться лучших результатов? Более четкое изображение? Несмотря на то, что мой номерной знак хуже, так что результат может читать OCR (например, Tesseract).
Спасибо за ответы. На самом деле я не знаю, как это сделать.