Bild-vergleich
Übersicht

extraBetreff: Bild-vergleich |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Willst du solche Sicherheits-Codes im Web umgehen? ![]() ![]() Aber ob du sie auslesen kannst, kommt ganz darauf an, wie gut das bild lesbar ist! |
||
extra |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nein, welch unterstellung ![]() ich bekräftige hiermit die legalität meines Vorhabens |
||
![]() |
Pdd |
![]() Antworten mit Zitat ![]() |
---|---|---|
das war doch keine unterstellung ![]() ![]() |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. ![]() |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke für die aufmuternden Beiträge ![]() 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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was willst du denn für Muster erkennen? Buchstaben, Formen? Vielleicht kann man das irgendwie anders hinbiegen... ![]() |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() 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: ![]() |
||
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 ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
- Zuletzt bearbeitet von StepTiger am Di, Jul 25, 2006 15:25, insgesamt 3-mal bearbeitet
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mit neuronalen Netzen kann man sowas auch machen aber da wirste
ein paar Monate mit beschäftigt sein ![]() Als erstes versuchen die Buchstaben zu isolieren und dann in der größe scalieren/zentrieren für die Lern/Erkennfunktion . |
||
![]() |
Triton |
![]() Antworten mit Zitat ![]() |
---|---|---|
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: ![]() |
||
Coding: silizium-net.de | Portfolio: Triton.ch.vu |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group