Verfasst am: 03.11.2013, 16:05
Titel: Bild ausschneiden mit vordefinierter "Schablone"
Hallo,
ich beschäftige mich erst seit ein paar Tagen mit Matlab und möchte mich mit Bildverarbeitung beschäftigen. Leider komme ich nicht hinter warum der folgende Code nicht funktioniert.
Der letzte Block wird als Fehler angezeigt. Das Fenster öffnet sich, aber leider ist es leer. Es müsste das Original Bild angezeigt werden und die Umrisse der erkannten Figur auf dem Bild.Diese sind überlabt auf einem Bild Dargestellt.
Und das führt zur meiner Nächten Frage: wie kann ich dann die erkannten Umrisse als eine art Schablone benutzen und die erkannte Figur ausschneiden und den Rest wegwerfen?
Dankeschön, jetzt klappt alles. Außer das mit dem Ausschneiden. Das kriege ich nicht hin. Ich finde zwar im Internet einige Ansätze die bringen mich aber leider nicht weiter.
Leider bringen mich deine Hinweise auch nicht weiter. Wie soll den ausgeschnitten werden? Du kannst standardisiert einen Ausschnittbereich vorgeben oder interaktiv einen Rahmen setzen. Oder sollen bestimmte Bildbereiche '"ausgeschnitten" - also isoliert dargestellt werden. Hänge doch einfach mal Bildbeispiel an, wie es aussehen soll.
Dymenz
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 05.11.2013, 09:53
Titel:
Das Objekt auf einem Bild das eingelesen wird, soll wie bei Photoshop vom Hintergrund Freigestellt werden so das ich nur noch das Objekt als eine Datei habe. Hoffe das beispiel was ich hier zeige weiter hilft.
Prinzipiell musst die die in Photoshop dargestellten "gekachelten Flächen" auf NaN setzen. Dazu muß die Datei in double konvertiert und die Werte, die in der gekachelten Fläche liegen, auf "NaN" indiziert werden. NaN wird in der Figur aber schwarz dargestellt! Mache mal folgenden Versuch:
Du siehst jetzt ein paar schwarze Punkte, die den Wert "9" mit "NaN" darstellen.
Überprüfen kannst du das mit "impixelinfo". Gehe mit dem cursor auf einen schwarzen Punkt und lese den Wert ab.
Das geht natürlich nur, wenn die Werte, die transparent dargestellt werden sollen, nicht gleichzeitig mit den gleichen Werten im Bild vorkommen. Dann wird es problematischer.
Leider komme ich immer noch nicht hinter wie ich die erkannten Kanten als Schablone zum ausschneiden benutzen kann und dann die ausgeschnittene Figur in einer separaten Datei speichern kann.
vielleicht kann mir jemand ein wenig unter die Arme greifen.
Was hast du den bisher nicht verstanden? Es gibt 2 unterschiedliche Wege. Du hast zunächst einmal eine große weiße Fläche, die eindeutig mit den Werten 1.0 zu NaN indiziert werden kann. Du musst nur daran denken, dass du bei einem Farbbild die Indizierung über alle 3 Layer laufen lässt.Dazu gibt es entweder die Schleife oder separat über alle RGB-Auszüge. Dann hast du noch ein paar Pixel am Rand, die händisch gelöscht werden müssen.
Der andere Weg ist, dass du einen Pfad um die Figur setzt und dann zu NaN löscht. Da das Pfadwerkzeug aber in Matlab nicht so komfortabel ist wie in Photoshop (erlaubt kein Absetzen) müsste mann den Vorgang in kleinen Schritten mehrmals wiederholen. Erscheint mir ein bisschen umständlich. Einen Zauberstab wie in Photoshop gibt es in Matlab nicht.
Du musst schon konkret sagen, was du bisher gemacht hast, welche Fehler aufgetaucht sind und welchen Vorgang du umsetzen möchtest. Sonst weiß niemand, wie man dir helfen soll.
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.