AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Rand in einem Bild erkennen
Thema durchsuchen
Ansicht
Themen-Optionen

Rand in einem Bild erkennen

Ein Thema von franktron · begonnen am 19. Sep 2005 · letzter Beitrag vom 21. Sep 2005
Antwort Antwort
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Rand in einem Bild erkennen

  Alt 19. Sep 2005, 13:42
Ich habe ein Bild was einen Grauen Rand hat wie kann ich diesen Rand erkennen.

Ich nutze GD32 für die Bilder(PNG) aber das sollte ja egal sein.
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

Re: Rand in einem Bild erkennen

  Alt 20. Sep 2005, 16:00
Hat den da keiner ne idee wie man den Rand einer Seite erkennen kann.
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: Rand in einem Bild erkennen

  Alt 20. Sep 2005, 16:03
Vielleicht über die Höhen und Breitenangabe oder die Pixelfarbe?

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Rand in einem Bild erkennen

  Alt 20. Sep 2005, 16:32
Wie sieht denn das Bild aus und was willst du genau machen? (Den Rand weg, erkennen, ob ein Rand da ist...)
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

Re: Rand in einem Bild erkennen

  Alt 20. Sep 2005, 17:43
ich häng morgen mal ein Screenshot an es ist eine Rechnung also eine A4 Seite aber der Scanner scannt etwas mehr
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
lizardking

Registriert seit: 2. Sep 2005
76 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Rand in einem Bild erkennen

  Alt 20. Sep 2005, 18:42
Zitat von franktron:
ich häng morgen mal ein Screenshot an es ist eine Rechnung also eine A4 Seite aber der Scanner scannt etwas mehr
Hab letztens mal 'ne Zeilenerkennung fuer Dokumente programmiert, eigentlich ein aehnliches Problem und nicht besonders kompliziert zu loesen :

Bild z.B. zeilenweise von unten nach oben durchgehen. Dabei aus einer Zeile einen Pixel (nicht gerade vom Rand) als "Referenzpixel" nehmen und ueberpruefen, ob alle Pixel in einem bestimmten Bereich mehr oder weniger dem gleichen Farbwert entsprechen. Beispielsweise bei einem 640 Pixel breiten Bild die Pixel zwischen 100 und 500 darauf pruefen (gerade an den Raendern koennen schonmal groessere Farbunterschiede bei Scans auftauchen).
Beim Vergleich die Pixel in die einzelnen RGB-Werte zerlegen und einen gewissen Threshold tolerieren. Also z.B. die einzelnen RGB-Werte duerfen sich nicht mehr als 10 vom "Referenzpixel" unterscheiden (muss man dann ausprobieren, wie hoch dieser Threshold guenstig gewaehlt wird).
Ist der "Referenzpixel" *hust* "irgendwie grau" und die anderen Pixel weichen nicht viel davon ab, dann ist's 'ne graue Zeile und kann abgeschnitten werden.
Sobald man keine graue Zeile mehr findet, scheint wohl das Dokument anzufangen.

Selbiges Verfahren laesst sich entsprechend anwenden, wenn die Raender Oben, Links oder Rechts zu suchen sind. Wie erwaehnt, bei meiner Zeilenerkennung funktionierte das einwandfrei, auch bei gescannten Dokumenten. Wenn zu wenig abgeschnitten wird : Threshold erhoehen, ggf. Zeilenausschnitt fuer die Ueberpruefung der Pixel verkleinern. Wird zu viel abgeschnitten : Vice versa ;-)

Gruss, Lizzy

P.S.: Sourcecode find ich leider momentan nicht :( Aber ich denke mal wenigstens der Ansatzpunkt duerfte hoffentlich einigermassen klar sein... oder ?
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

Re: Rand in einem Bild erkennen

  Alt 20. Sep 2005, 20:47
Ja leider habe ich meine Dokos in Graustufen gescannt also wie kann ich den RGB Wert ermitteln
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
lizardking

Registriert seit: 2. Sep 2005
76 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Rand in einem Bild erkennen

  Alt 21. Sep 2005, 08:32
Zitat von franktron:
Ja leider habe ich meine Dokos in Graustufen gescannt also wie kann ich den RGB Wert ermitteln
Wenn Du in Graustufen gescannt hast, dann reicht es eigentlich IMHO aus, nur die Grauwerte entsprechend zu vergleichen. Vorausgesetzt natuerlich, die Grafik wird intern auch in Grauwerten gespeichert.

Ansonsten bekommt man die einzelnen Komponenten ungefaehr so :

r:=GetRValue(Color);
g:=GetGValue(Color);
b:=GetBValue(Color);
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Rand in einem Bild erkennen

  Alt 21. Sep 2005, 20:03
Zitat:
Ja leider habe ich meine Dokos in Graustufen gescannt also wie kann ich den RGB Wert ermitteln
Bei Grauwerten sind die Wert für R, G und B die gleichen, d.h. es reicht mit einem Wert davon zu arbeiten.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz