Bilder Extrahieren

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

PhillipK

Betreff: Bilder Extrahieren

BeitragSa, Jun 01, 2013 12:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Huhu!

Ich habe mir grade ein intressantes problem gestellt, doch da hörts auch schon auf - ich bin zu doof.
auf meinem handy hab ich eben ein spielchen gespielt und mir ist aufgefallen, das man theoretisch die grafiken vom hintergrund trennen kann.

Erstmal ein screenshot, um zu verdeutlichen was ich grade vor habe:
user posted image

Man achte auf die bodenplatten. Diese sind, ganz deutlich zu sehen, sau einfach gehalten. Aber kann man die grafik extrahieren, wenn man genügend bilder zusammenpappt?

Mein ansatz wäre, die bodenplatten in einem grafikprogramm auszuschneiden und als einzelbilder zu speichern. Danach werden diese alle in blitzmax geladen und die gleichen parts in ein bild geschrieben. Am ende soll eine alpha-gefadete grafik der bodenplatte entstehen.
An sich klingt das recht einfach, aber ich glaube, das ist doch komplexer als ich mir das vorstelle.

Ich frage hier nun also nach ideen und vorschlägen, wie man solche gleichen parts in bildern erkennen kann - denn alle weisen gleiche eigenschaften auf (wie zb die helligkeit am rand) - aber problematisch wird der mittlere teil. Ist sowas überhaupt möglich?


Hinweis: Ich will in keiner form die grafiken klauen. Ich halte es lediglich für eine intressante übung, um meinen horizont zu erweitern ^-^ Die dinger sind in inkscape in < 2 minuten zu machen, also ist das "stehlen" aufwändiger.

Weiteres ziel ist es, dinge in richtung kantenerkennung etc zu lernen, bzw formen in bildern zu erkennen. Ein thema, was ich ganz und garnicht kann.

Xeres

Moderator

BeitragSa, Jun 01, 2013 12:39
Antworten mit Zitat
Benutzer-Profile anzeigen
~VERSCHOBEN~

Die Problemstellung scheint mir für den allgemeinen Bereich besser geeignet.

Man könnte das Rauschen durch eine Art hochpass/tiefpass Filter entfernen - also den Kontrast so verringern, dass das Rauschen verschwindet und dann wieder erhöhen. Ich glaube aber nicht, dass das automatisch geht.
Wie will man bei Pixelvergleichen denn auswählen, was die richtige Farbe ist? Man kann die häufigste nehmen, aber das erscheint mir wenig zuverlässig.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

BladeRunner

Moderator

BeitragSa, Jun 01, 2013 13:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich sehe da auch nur die Chance eine Häufigkeitsverteilung zu erstellen und anhand derer die wahrscheinlichste Farbe für den Pixel zu ermitteln.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Holzchopf

Meisterpacker

BeitragSa, Jun 01, 2013 13:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist das Muster der Bodenplattenbelegung immer gleich? Wenn du jetzt mal den Hintergrund von Position (2,0) extrahierst, dann das Spiel neu startest bis dieses Tile mit einer Bodenplatte versehen ist, diese auch extrahierst, kannst doch dann einfach aus den beiden Bildern die Differenz pro Pixel errechnen (natürlich müssen sie Pixelmässig genau übereinander liegen, aber ob das klappt, siehst du, wenn der Hintergrund dabei quasi verschwindet). Die Differenz ist dann das, was die Bodenplatte alleine zum Bild beiträgt - also das Bodenplattenbild selbst.

Wenn du aber nur ein Bild zur Verfügung hast, ist die statistische Pixelanalyse wohl das akkurateste.

MfG
Holzchopf
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Tennisball

BeitragSa, Jun 01, 2013 13:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ihr verwirrt mich; Sind mit den Bodenplatten die hinteren oder die vorderen Platten gemeint?

DAK

BeitragSa, Jun 01, 2013 15:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke, am sinnvollsten wäre es wirklich, für jedes Pixel den Durchschnitt der Farben an der gleichen Stelle aller Bilder zu erstellen. Dem Gesetz der großen Zahlen folgend (bei halbwegs zufälliger Hintergrundverteilung) solltest du bei genügend vielen Samples auf ein gutes Ergebnis kommen. Das würd dir aber kein Alphafading geben.
Gewinner der 6. und der 68. BlitzCodeCompo
 

PhillipK

BeitragSo, Jun 02, 2013 1:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Huch, hab meine anfrage total vergessen, weil ich plötzlich richtig hart buckeln musste ^^ scheiß siphon -.-

Tennisball: Ich beziehe mich, um bei diesem beispiel zu bleiben, auf die "leicht sichtbaren", alpha gefadeten, bodenplatten. So wie ich es verstanden habe, tun es die anderen auch Smile

Aber im grunde ist hier meine idee mit ein paar besseren ansätzen wiedergegeben worden.

Ja, der hintergrund bleibt immer gleich. Aber ich musste heute schon feststellen, das die samples nur augenscheinlich identisch sind - auf pixelebene unterscheiden diese sich leider. Dh massensamples wird benötigt.

Mein ansatz (bisher nur im kopf), sieht vor, die unterschiede im hintergrund auszunutzen: Man denke sich 20 ebenen übereinander, und der wirrwar im hintergrund ändert sich in jedem. Das könnte man doch ausnutzen, oder?
Ich meine, es müsste einfacher sein, die differenzen zu finden als gleiche merkmale zu isolieren. allerdings wird man da mit dem RGB farbraum nicht weit kommen, da muss wohl eher ein HSV / HSL farbraum her.

Mit diesem wiederrum, könnte man, wenn man 2 samples des hintergrundes ohne und mit der bodenplatte kriegen könnte, diese abstrahieren. Aber das scheint mir zu statisch zu sein - eine statistische analyse klingt da doch intressanter :3

Wenn mich mein reallife die tage mal nen bisschen durchatmen lässt, werde ich ein bisschen rumprobieren. Bis dahin sammel ich weitere ideen *grins*


Ps: Es soll sich bitte keiner die mühe machen und das nun versuchen oO Ich kann mir vorstellen, das dies ein brocken arbeit wird. Mich intressiert dieses thema nur vorallem deshalb, weil es ein wenig paradox wirkt: Wir sehen das bild und denken uns: "ach wie schön, bodenplatten. Simpler glasslook, gleichbleibendes weiß inner mitte und sichtbar gemachte kanten."
Aber das ganze mit dem computer zu erkennen scheint arg schwer und fehleranfällig. Ein beweis, wie genial das gehirn eigentlich ist :O
Anyways, es ist und bleibt eine intressante aufgabe wie ich finde *grins*

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group