如何准备要通过tesseract OCR识别的图像 [英] How to prepare image to recognize by tesseract OCR
本文介绍了如何准备要通过tesseract OCR识别的图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用Tesseract OCR提取仪表读数... tesseract需要识别正确的白色背景和黑色数字。我试图对图像进行阈值处理
src:= cvLoadImage(filename,CV_LOAD_IMAGE_GRAYSCALE);
dst:= cvCreateImage(cvGetSize(src),IPL_DEPTH_8U,1);
cvThreshold(src,dst,50,250,CV_THRESH_BINARY);
但是我没有得到正确的结果。我该怎么办?
我在Delphi-OpenCV中使用了deplhi6
解决方案
您可以将此图像处理如下:
对于jy:= 0到bm。对ix的高度:= 0至bm。宽度开始于cor:= bm.Canvas.Pixels [ix,jy]; R:= GetRValue(Cor); G:= GetGValue(Cor); B:= GetBValue(Cor);如果g> 38,则bm.Canvas.Pixels [ix,jy]:= clWhite else bm.Canvas.Pixels [ix,jy]:= clBlack; end;
作为输出,我得到以下图像:
希望这会有所帮助。
I use Tesseract OCR to to extract meter reading... tesseract needs to recognize right white background and black numbers.. I tried to threshold image
src := cvLoadImage(filename,CV_LOAD_IMAGE_GRAYSCALE);
dst := cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 1);
cvThreshold(src, dst, 50, 250, CV_THRESH_BINARY);
but i didn't get the right result.. what should I do? I use deplhi6 with Delphi-OpenCV https://github.com/Laex/Delphi-OpenCV
解决方案
You can treat this image as follows:
for jy:= 0 to bm.Height do
for ix := 0 to bm.Width do
begin
cor:=bm.Canvas.Pixels[ix,jy];
R:=GetRValue(Cor);
G:=GetGValue(Cor);
B:=GetBValue(Cor);
if g>38 then
bm.Canvas.Pixels[ix,jy]:=clWhite
else
bm.Canvas.Pixels[ix,jy]:=clBlack;
end;
As an output I got the following image:
Hope this helps.
这篇关于如何准备要通过tesseract OCR识别的图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文