Objekterkennung

Hier könnt ihr sowohl zur x86 Architektur als auch zu Win32ASM Fragen stellen.

Moderatoren: crack, Krüsty, Marwin

Objekterkennung

Beitragvon Tommy1169 » Dienstag 9. Juni 2009, 14:33

Hallo,
ich möchte ein Assembler-Programm erstellen welches ein Bild lädt und auf der Konsole ausgibt.
Zuerst soll das Originalbild ausgegeben werden, dann soll ein 2 Pegelbild mit einer festen Schwelle ermittelt und ausgegeben werden.
Danach sollen die Objekte mit zB. FloodFill markiert werden und dann erneute Bildausgabe.
Zwischen den Schritten soll das Programm auf eine Tastatureingabe warten.

Ich weiss nun leider nicht wie ich überhaupt eine Bilddatei laden und auf der Konsole ausgeben kann.
Hat da jemand eine Idee? Danke im Voraus für Tipps.

Gruß Tom
Tommy1169
Newbie
 
Beiträge: 2
Registriert: Dienstag 9. Juni 2009, 12:24

Re: Objekterkennung

Beitragvon crack » Dienstag 16. Juni 2009, 09:47

Es buchstäblich auf der 'Konsole' (Textmodus 80x25 Zeichen) auszugeben ist so wahrscheinlich nicht möglich, aber Du kannst es ausgeben indem Du den Videomodus entsprechend setzt (z.B. 800x600 Pixel SVGA bzw. jeder Modus nach VESA Spezifikation) und das Bild Byte für Byte (lodsb und stosb) in den Videospeicher überträgst.
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf

Re: Objekterkennung

Beitragvon Tommy1169 » Freitag 19. Juni 2009, 15:05

Ja das stimmt, das Darstellen des Bildes und umschalten des Videomodus habe ich hinbekommen, doch nun weiss ich nicht wie ich aus dem originalbild dieses 2 schwellenbild als ein bild mit lediglich schwarz und weis, ohne grautöne, machen soll.

Da muss ich doch quasi jedes pixel einlesen, den Helligkeitswert ermitteln und dann per verzweigung bei einer mir festgelegten schwelle sagen: fülle dieses Pixel mit schwarz und wenn es über der schwelle ist, mit weiss.

Grob gedacht...aber das zu implementieren... da hab ich noch keinen Ansatz...

Gruß Tom
Tommy1169
Newbie
 
Beiträge: 2
Registriert: Dienstag 9. Juni 2009, 12:24

Re: Objekterkennung

Beitragvon crack » Freitag 19. Juni 2009, 16:18

Tommy1169 hat geschrieben:Ja das stimmt, das Darstellen des Bildes und umschalten des Videomodus habe ich hinbekommen, doch nun weiss ich nicht wie ich aus dem originalbild dieses 2 schwellenbild als ein bild mit lediglich schwarz und weis, ohne grautöne, machen soll.

Da muss ich doch quasi jedes pixel einlesen, den Helligkeitswert ermitteln und dann per verzweigung bei einer mir festgelegten schwelle sagen: fülle dieses Pixel mit schwarz und wenn es über der schwelle ist, mit weiss.

Grob gedacht...aber das zu implementieren... da hab ich noch keinen Ansatz...

Gruß Tom


Ich versuchs mal als Papier und Bleistiftcode:
Code: Alles auswählen
.data
Schwellwert: db 080h ;nur als Beispiel

.code
...
einsprung:
lodsb ;bildpunkt laden
cmp al, byteptr[Schwellwert]
jge weiss
mov al, 0
stosb
loop einsprung
weiss:
mov al, 0ffh
stosb
loop einsprung
...
rest_des_Programms


So oder ähnlich könntest Du es realisieren, falls es sich um ein RGB Bild handelt, musst Du natürlich um eine realistische Umsetzung zu erreichen aus RGB die Leuchtdichte Information als Mittelwert bilden, rein mathematisch:
Y=(R+B+G)/3
Dann sollte das doch eigentlich funktionieren ...
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf


Zurück zu Assembler

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

cron