Bild-vergleich

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

extra

Betreff: Bild-vergleich

BeitragMo, Jul 24, 2006 21:19
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo leute

ich mach mir grad gedanken ob ich bestimmte Werte aus einer geladenen bmp-Datei irgendwie auslesen kann.

Ist es möglich werte, z.B einen Buchstaben, zahl,...etc, die das geladene und angezeigte bild beinhaltet, auszulesen?

Das einzige was mir in den sinn kommt, ist das ich den gesuchten wert mit dem Bild, indem dieser wert vorhanden ist, vergleichen muss.

Hilfe ist dringend erwünscht...
bei rückfragen melden
danke

Pdd

BeitragMo, Jul 24, 2006 21:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Willst du solche Sicherheits-Codes im Web umgehen? Rolling Eyes Ich kann dir zwar net sagen, WIE es geht, aber ich weis, DASS es geht! Da gabs mal son Programm, das die Rapidshare Codes lesen konnte, daraufhin wurden sie geändert Rolling Eyes
Aber ob du sie auslesen kannst, kommt ganz darauf an, wie gut das bild lesbar ist!
 

extra

BeitragMo, Jul 24, 2006 21:26
Antworten mit Zitat
Benutzer-Profile anzeigen
nein, welch unterstellung Cool

ich bekräftige hiermit die legalität meines Vorhabens

Pdd

BeitragMo, Jul 24, 2006 21:34
Antworten mit Zitat
Benutzer-Profile anzeigen
das war doch keine unterstellung Razz Very Happy

SpionAtom

BeitragMo, Jul 24, 2006 22:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Was du auf jeden Fall machen kannst, ist pixelweises vergleichen (zb mit readpixel).
Du scheinst aber viel mehr zu wollen, nämlich Mustererkennung. Und das ist schon wieder ein sehr schwieriges Thema. Rolling Eyes
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080
 

Dreamora

BeitragMo, Jul 24, 2006 22:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Definitiv ein ziemlich heftiges Thema zumal die zugrunde liegende Mathe nur im Ingenieursstudium überhaupt gebracht wird und einiges Matheverständnis verlangt.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

extra

BeitragMo, Jul 24, 2006 22:55
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für die aufmuternden Beiträge Very Happy

readpixel ist das falsche, da dieser befehl die farbe, ich aber das muster, wie du erwähnt hast, brauche.

aber danke... links, tutorials und hilfestellungen sind weiterhin erwünscht.
 

Dreamora

BeitragDi, Jul 25, 2006 3:23
Antworten mit Zitat
Benutzer-Profile anzeigen
ReadPixel ist schon der richtige Befehl
Was du brauchst ist ein Algorithmus, dass aus den Pixeldaten ein so etwas wie ein Muster erzeugt (zb mittels Fouriertransformation) und dann einen Algorithmus der solche Muster erkennen kann.

Gibt dazu keine Tutorials, da es wie gesagt etwas hoch spezifisches ist. Im Informatikwissenschaftsstudium an Elite Instituationen bekommste das im 3. / 4. Jahr zu sehen ...
Von daher: Definitiv kein Thema für das BB Board, wenns dich interessiert musst du dir englisch als auch C++ erst beibringen.

~VERSCHOBEN~

Definitiv keine Beginner Frage
Dreamora
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

SpionAtom

BeitragDi, Jul 25, 2006 10:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Was willst du denn für Muster erkennen? Buchstaben, Formen? Vielleicht kann man das irgendwie anders hinbiegen... Confused
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

StepTiger

BeitragDi, Jul 25, 2006 11:22
Antworten mit Zitat
Benutzer-Profile anzeigen
also naja, man kann es auch einfach so machen, dass man jeden Pixel abkramt wo es sein könnte und dort text hinsetzt. Hab dazu gerade ein kleines Programm fertig gemacht

wenn es nur abweichungen von 3,4,5 Pixeln sind, ist das, solange es kein Klartext ist Laughing , kein Problem.

Einfach mal testen

Am besten die Vergleiche auskommentieren. Die dienten mir nur als debugging beim programmieren und die fressen mit die meißte zeit

Code: [AUSKLAPPEN]
Global col[1],farben[1]

image=LoadImage("blas.bmp")
If image=0
   font=LoadFont("Arial",16)
   SetFont font
   Color 0,0,0
   image=CreateImage(20,20)
   SetBuffer ImageBuffer(image)
   For x=0 To 20
      For y=0 To 20
         WritePixel x,y,16777215
      Next
   Next
   Text 5,5,"R"
   SetBuffer BackBuffer()
EndIf
If image=0 Then RuntimeError "Couldn't load image"
da=getletter(0,0,ImageWidth(image),ImageHeight(image),image,"Arial",14,16777215,30)

If da>0
   Print Chr$(da)
Else
   Print "Kein Text"
EndIf
Flip
WaitKey

Function getletter(x,y,width,height,image,bgcol,mfont$,dist=14,minsize=16,maxsize=0)
   If maxsize=0 Then maxsize=minsize
   ClsColor 0,0,0
   img=CreateImage(width,height)
   SetBuffer ImageBuffer(img)
   sfont=LoadFont("Arial",12)
   For size=minsize To maxsize
      For effekt=1 To 8
         If effekt=1 Then font=LoadFont(mfont$,size)
         If effekt=2 Then font=LoadFont(mfont$,size,1,0,0)
         If effekt=3 Then font=LoadFont(mfont$,size,0,1,0)
         If effekt=4 Then font=LoadFont(mfont$,size,0,0,1)
         If effekt=5 Then font=LoadFont(mfont$,size,1,0,1)
         If effekt=6 Then font=LoadFont(mfont$,size,1,1,0)
         If effekt=7 Then font=LoadFont(mfont$,size,1,1,1)
         If effekt=8 Then font=LoadFont(mfont$,size,0,1,1)
         For mx=-size/10 To width
            For my=-size/8 To height-size/5
               For alphabet=1 To 26
                  SetFont font
                  SetBuffer ImageBuffer(img)
                  let=64+alphabet
                  LockBuffer
                  For cx=0 To width
                     For cy=0 To height
                        da=ReadPixel(cx+x,cy+y,ImageBuffer(image))
                        WritePixelFast cx,cy,da
                     Next
                  Next
                  UnlockBuffer
                  Text mx,my,Chr$(let)
                  ergebnis=compare(x,y,img,image)
                  SetBuffer BackBuffer()
                  If ergebnis<=14
                     If farben[0]<>0 And farben[0]<>-687866256
                        letter=let
                     Else
                        letter=0
                     EndIf
                     Goto leton
                  EndIf
                  DrawImage image,1,1
                  DrawImage img,ImageWidth(image)+10,1
                  SetFont sfont
                  Color 255,255,255
                  Text 1,ImageHeight(image)+10,ergebnis+" "+farben[0]+" "+farben[1]
                  Color 0,0,0
;                  Delay 1000
                  Flip
                  Cls
                  If KeyDown(1) Then End
               Next
            Next
         Next
      Next
   Next
   .leton
   Return letter
End Function

Function compare(x,y,img1,img2)
;   LockBuffer ImageBuffer(img1)
;   LockBuffer ImageBuffer(img2)
   fail=0
   farben[0]=0
   farben[1]=0
   For cx=0 To ImageWidth(img1)
      For cy=0 To ImageHeight(img1)
         col[0]=ReadPixel(cx,cy,ImageBuffer(img1))
         col[1]=ReadPixel(cx,cy,ImageBuffer(img2))
         If col[0]<>col[1] Then fail=fail+1
         farben[0]=farben[0]+col[0]
         farben[1]=farben[1]+col[1]
      Next
   Next
;   UnlockBuffer ImageBuffer(img1)
;   UnlockBuffer ImageBuffer(img2)
;   If farben[0]=farben[1] Then fail=0
   Return fail
End Function


*EDIT* WEITREICHENDE VERÄNDERUNG EINGEFÜGT


Mal ein Beispiel:
user posted image nehmt das mal als bild
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
  • Zuletzt bearbeitet von StepTiger am Di, Jul 25, 2006 15:25, insgesamt 3-mal bearbeitet

Markus2

BeitragDi, Jul 25, 2006 12:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit neuronalen Netzen kann man sowas auch machen aber da wirste
ein paar Monate mit beschäftigt sein Confused
Als erstes versuchen die Buchstaben zu isolieren und dann in der
größe scalieren/zentrieren für die Lern/Erkennfunktion .

Triton

BeitragDi, Jul 25, 2006 19:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, man kann sich schon mit relativ einfachen Maßnahmen vieles Vereinfachen.
z.B kann man reine Schrift aus einem Bild rausfiltern und hat dann nurnoch Schrift oder nichts und muss nurnoch die Schrift an sich erkennen:

user posted image
Coding: silizium-net.de | Portfolio: Triton.ch.vu

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group