Mustererkennung < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) reagiert/warte auf Reaktion | Datum: | 11:00 Do 20.04.2006 | Autor: | hassi400 |
Aufgabe |
Eine zahl die auf einem Bild steht als Beispiel(8) (1), soll mit Matlab erkannt und ausgegeben werden. |
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Dafür habe ich mein Bild in s/w umgewandelt,Ein 8 besteht aus 7dunckelen Segmenten(Digital geschrieben) die Segmente will ich vorher initialisieren (Teilmatrix des Bildes) wenn alle Segmente dunkele Pixel aufweisen kriegt man die Zahl 8 raus.wenn zbs nur 2 bestimmte Segmente Dunkelen Pixeln aufweisen ist das dann die 1 unsw wer kann mir helfen oder andere Vorschläge geben danke.ich weiss nicht mal ob was ich tue richtig ist .
|
|
|
|
Hey Hassan,
wenn du bestimmte Farben in einem Bild detektieren möchtest, musst du erstmal festlegen wie denn der Schwellenwert ist, d.h.
if (Farbe < Schwellenwert)
bool = function Pixel_in_Zahl(Bild,Pixel)
else
do nothing
end
Dann ist es relevant zu wissen, ob du im Vorfeld weißt welche Zahl du detektieren möchtest. Wenn es im Vorfeld weißt, dann kannst du "function Pixel_in_Zahl(Bild,Pixel)" dadurch definieren, dass du du
für einen Pixel, der zu einer Zahl gehört in den entsprechenden benachbarten Pixel nimmst, z.B. schräg rechts daunter (musst du berechnen welcher Pixel es ist) und guckst, ob er ebenfalls die gesuchte Farbe hat. So kannst du durch alle Pixel der Zahl durchgehen.
WEnn du die Zahl im Vorfeld nicht kennst, musst du Pixel_in_Zahl für jede mögliche zu detektierende Zahl programmieren.
Wenn du dann zufrieden bist, wenn er eine Zahl gefunden hat, kannst du die obere if Schleife nach einmaligem Erfolgreichen Durchlaufen verlassen, ansonsten wirst du alle Pixel durchlaufen müssen.
Wenn du weitere Fragen hast, poste mal was du schon so programmiert hast.
Gruß
Alice
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 10:20 Mo 24.04.2006 | Autor: | hassi400 |
hey Alice danke für deine Antwort,aber vielleicht kannst du mit weiterhelfen.
Unser Bild wird schwarz weiss sein.die Pixel die schwarz sind bilden unser Zahl auf dem Bild.du kannst dir vorstellen eine 8 besteht aus 7 Kanten 3 mal horizontal und 4 mal Vertikal.jede Kante ist eine (x X y)Matrix auf der man zugreifen kann.wollte so machen dass unser Algoritmus jede Kante (oder minimum ein Pixel von jeder Kante nach Dunkelheit prüft) wenn Dunkel ist wird mein algoritmus ein 0 ausgeben wenn hell dann ein 1 so wird für jede Kante geprüft am ende kriege ich eine 7stellige Bitfolge für die 8 ZB eine 0000000.früher werde ich jeder möglichen zahl eine Bitfolge zuordnen.bei eine eins zb wird 0011111 weil bei eins nur 2 Kanten dunkel sind . Anhand dieser Bitfolge kann mein Algoritmus die richtige zahl ausgeben.
das Problem ich bin ein Neuling in Matlab habe nur bissien Erfahrung mit c und c++ von 1.Semester ich weiss nicht wie soll es in Matlab verwirklicht werden deswegen brauche eure Hilfe egal was mir helfen kann.
Mein email ist: Hassan49@gmx.de falls jemand mir was schicken will
Danke
|
|
|
|