현재 tesseract를 사용하여 영수증을 검사합니다. 품질이 좋지 않아 개선 방법에 대한이 기사를 읽었습니다 : https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality#noise-removal. 크기 조정, 기울이기 보정 (정렬) 및 가우시안 흐림 효과를 구현했습니다. 그러나 이들 중 어느 것도 기울임 보정을 제외하고는 OCR의 정확성에 긍정적 인 영향을 미치는 것으로 보이지 않습니다. 다음은 크기 조정 및 가우시안 블러에 대한 코드입니다. 내가 뭐 잘못하고 있니? 그렇지 않다면 도움을 줄 수있는 다른 방법은 무엇입니까?Tesseract OCR 품질 향상 실패
코드 :
+(UIImage *) prepareImage: (UIImage *)image{
//converts UIImage to Mat format
Mat im = cvMatWithImage(image);
//grayscale image
Mat gray;
cvtColor(im, gray, CV_BGR2GRAY);
//deskews text
//did not provide code because I know it works
Mat preprocessed = preprocess2(gray);
double skew = hough_transform(preprocessed, im);
Mat rotated = rot(im,skew* CV_PI/180);
//resize image
Mat scaledImage = scaleImage(rotated, 2);
//Guassian Blur
GaussianBlur(scaledImage, scaledImage, cv::Size(1, 1), 0, 0);
return UIImageFromCVMat(scaledImage);
}
// Organization -> Resizing
Mat scaleImage(Mat mat, double factor){
Mat resizedMat;
double width = mat.cols;
double height = mat.rows;
double aspectRatio = width/height;
resize(mat, resizedMat, cv::Size(width*factor*aspectRatio, height*factor*aspectRatio));
return resizedMat;
}
영수증 : 당신은 당신이 정팔 포체 엔진이 광장에서 한 줄의 텍스트에서 가장 잘 작동 보게 될 정팔 포체 설명서를 읽어 보면
[이 링크] (http://www.danvk.org/2015/01/11/training-an-ocropus-ocr-model.html)가 도움이 될 수 있습니다. – sturkmen