Schrifterkennung

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
ts230
Beiträge: 109
Registriert: Sa 20. Dez 2008, 20:42
OS, Lazarus, FPC: Linux (L 0.9.24)
CPU-Target: 32Bit
Wohnort: San Jose,CA
Kontaktdaten:

Schrifterkennung

Beitrag von ts230 »

Hallo,
ich möchte in mein Programm eine Schrifterkennung in gescanntem PNG's haben.
Also nicht Menschenschrift sondern eine Computerschrift(Arial,Purissa e.t.c.) und den erkannten Text in einem Memo-Feld anzeigen.
Ich hoffe jemand kann mir da helfen.

Code: Alles auswählen

 If beitragHilfreich then leseitdurch()else volle_ignoranz();
tiersendung.funpic.de

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Re: Schrifterkennung

Beitrag von theo »

Externes Programm aufrufen. Unter Linux gocr oder ocrad. K.a. was es für Windows gibt.

ts230
Beiträge: 109
Registriert: Sa 20. Dez 2008, 20:42
OS, Lazarus, FPC: Linux (L 0.9.24)
CPU-Target: 32Bit
Wohnort: San Jose,CA
Kontaktdaten:

Re: Schrifterkennung

Beitrag von ts230 »

Ja aber ich meine das wenn ich eine Seite voll "bla" hab,dass dass dann ine ein TMemo geschrieben wird.

Code: Alles auswählen

 If beitragHilfreich then leseitdurch()else volle_ignoranz();
tiersendung.funpic.de

ts230
Beiträge: 109
Registriert: Sa 20. Dez 2008, 20:42
OS, Lazarus, FPC: Linux (L 0.9.24)
CPU-Target: 32Bit
Wohnort: San Jose,CA
Kontaktdaten:

Re: Schrifterkennung

Beitrag von ts230 »

theo hat geschrieben:Externes Programm aufrufen. Unter Linux gocr oder ocrad. K.a. was es für Windows gibt.
Die sind bei mir nicht dabei.(Ubuntu 8.10)

Code: Alles auswählen

 If beitragHilfreich then leseitdurch()else volle_ignoranz();
tiersendung.funpic.de

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Re: Schrifterkennung

Beitrag von creed steiger »

Tesseract nicht zu vergessen

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Re: Schrifterkennung

Beitrag von theo »

creed steiger hat geschrieben:Tesseract nicht zu vergessen
Hast du das getestet?
http://code.google.com/p/tesseract-ocr/" onclick="window.open(this.href);return false;

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Re: Schrifterkennung

Beitrag von creed steiger »

theo hat geschrieben:
Hast du das getestet?
http://code.google.com/p/tesseract-ocr/" onclick="window.open(this.href);return false;
ich spiel grad mit diesen Beispielen rum:

http://www.mscs.dal.ca/~selinger/ocr-test/" onclick="window.open(this.href);return false;

Edit:
Installation als One Click Install von hier:
http://download.opensuse.org/repositori ... 11.0/i586/" onclick="window.open(this.href);return false;

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Schrifterkennung

Beitrag von Christian »

gocr gibts auch für windows
Die sind bei mir nicht dabei.(Ubuntu 8.10)
Du willst komplexe Syteme programmieren aber kannst keine Software installieren ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Re: Schrifterkennung

Beitrag von theo »

creed steiger hat geschrieben: Edit:
Installation als One Click Install von hier:
Ha, hab ich vor ein paar Minuten auch so gemacht. :-)

Funktionierende 8bit Tif's kannst du mit OPBitmap erstellen:

Code: Alles auswählen

uses opbitmapformats, opbitmap, Process
 
procedure TForm1.Button1Click(Sender: TObject);
var Op:TOPPicture;
  AProcess: TProcess;
begin
  Op:=TOPPicture.Create;
  Op.LoadFromFile('/home/theo/ocrtest.bmp');
  Op.Bitmap.PixelFormat:=pf8bit;
  Op.SaveToFile('/home/theo/locrtest.tif');
  Op.free;
  AProcess := TProcess.Create(nil);
  AProcess.CommandLine := 'tesseract /home/theo/locrtest.tif /home/theo/proc';
  AProcess.Options := AProcess.Options + [poWaitOnExit];
  AProcess.Execute;
  AProcess.Free;
  if FileExists('/home/theo/proc.txt') then Memo1.Lines.LoadFromFile('/home/theo/proc.txt');
end;

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Schrifterkennung

Beitrag von mschnell »

ts230 hat geschrieben:Ja aber ich meine das wenn ich eine Seite voll "bla" hab,dass dass dann ine ein TMemo geschrieben wird.
Wenn Du kein Programm findest, das als "filter" gestartet werden kann (, d.h stdin als inoput und stdout als output, sollte eigentlich jedes "ordentliche" Linunx-Programm können), kannst Du programmatisch zwei "fifos" in /tmp erzeugen, in das eine Dein Bild 'reinschieben, das Programm mit dem einen als input und dem anderen als output starten und nachher den Text aus dem anderen herauslesen. (named queues geht sicher auch, da musst Du aber mehr programmieren, weil sie selber keine Daten speichern und Dein Programm sie parallel zur Ausführung des anderen Programms bedienen muss.

-Michael

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Re: Schrifterkennung

Beitrag von creed steiger »

theo hat geschrieben:
Ha, hab ich vor ein paar Minuten auch so gemacht. :-)

Funktionierende 8bit Tif's kannst du mit OPBitmap erstellen:

Code: Alles auswählen

uses opbitmapformats, opbitmap, Process
 
procedure TForm1.Button1Click(Sender: TObject);
var Op:TOPPicture;
  AProcess: TProcess;
begin
  Op:=TOPPicture.Create;
  Op.LoadFromFile('/home/theo/ocrtest.bmp');
  Op.Bitmap.PixelFormat:=pf8bit;
  Op.SaveToFile('/home/theo/locrtest.tif');
  Op.free;
  AProcess := TProcess.Create(nil);
  AProcess.CommandLine := 'tesseract /home/theo/locrtest.tif /home/theo/proc';
  AProcess.Options := AProcess.Options + [poWaitOnExit];
  AProcess.Execute;
  AProcess.Free;
  if FileExists('/home/theo/proc.txt') then Memo1.Lines.LoadFromFile('/home/theo/proc.txt');
end;
Das ist so einfach,eigentlich sollte man die Idee für ein Frontend weiterführen.

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Re: Schrifterkennung

Beitrag von theo »

creed steiger hat geschrieben:eigentlich sollte man die Idee für ein Frontend weiterführen.
Das wäre wohl machbar.
Man müsste halt die Tesseract Optionen studieren und evtl. im Frontend das Bild vorbereiten.
Wie ich deinem Link entnommen habe, hat Tesseract mit Farbbildern Probleme.
Das könnte man alles vorher hinbiegen. OpBitmap eignet sich ziemlich gut für sowas.
Im OpBitmap ImgLibs Verzeichnis gibt es eine Datei opimglib.pas, dort ist ein kleiner Anfang gemacht für Bildbearbeitung.
Die könnte man um beliebige vorhandene Delphi Codes erweitern, z.B. Kontrast erhöhen, Gamma Korrektur etc. was man halt braucht.

ts230
Beiträge: 109
Registriert: Sa 20. Dez 2008, 20:42
OS, Lazarus, FPC: Linux (L 0.9.24)
CPU-Target: 32Bit
Wohnort: San Jose,CA
Kontaktdaten:

Re: Schrifterkennung

Beitrag von ts230 »

theo hat geschrieben:
creed steiger hat geschrieben: Edit:
Installation als One Click Install von hier:
Ha, hab ich vor ein paar Minuten auch so gemacht. :-)

Funktionierende 8bit Tif's kannst du mit OPBitmap erstellen:

Code: Alles auswählen

uses opbitmapformats, opbitmap, Process
 
procedure TForm1.Button1Click(Sender: TObject);
var Op:TOPPicture;
  AProcess: TProcess;
begin
  Op:=TOPPicture.Create;
  Op.LoadFromFile('/home/theo/ocrtest.bmp');
  Op.Bitmap.PixelFormat:=pf8bit;
  Op.SaveToFile('/home/theo/locrtest.tif');
  Op.free;
  AProcess := TProcess.Create(nil);
  AProcess.CommandLine := 'tesseract /home/theo/locrtest.tif /home/theo/proc';
  AProcess.Options := AProcess.Options + [poWaitOnExit];
  AProcess.Execute;
  AProcess.Free;
  if FileExists('/home/theo/proc.txt') then Memo1.Lines.LoadFromFile('/home/theo/proc.txt');
end;
Mein Lazarus kennt die "opbitmapformats, opbitmap"-units nicht.
Weiß jemand wo die liegt?

Code: Alles auswählen

 If beitragHilfreich then leseitdurch()else volle_ignoranz();
tiersendung.funpic.de

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: Schrifterkennung

Beitrag von monta »

Benutz doch bitte mal die suche hier...solche Kleinigkeiten sollten sich da dehr leicht lösen lassen ;)
Johannes

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Re: Schrifterkennung

Beitrag von creed steiger »

theo hat geschrieben:
creed steiger hat geschrieben:eigentlich sollte man die Idee für ein Frontend weiterführen.
Das wäre wohl machbar.
Man müsste halt die Tesseract Optionen studieren und evtl. im Frontend das Bild vorbereiten.
Die Optionen werden über ein Konfig-File übergeben.
Viel mehr Docu hab ich leider nicht gefunden.
Ich werd mir das mal anschaun.
Dateianhänge
TESSERACT.OPTIONS.txt
(40.6 KiB) 184-mal heruntergeladen

Antworten