|
|
Interpolation eines "Loches" |
|
PeteVAR |
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 02.10.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.10.2013, 11:35
Titel: Interpolation eines "Loches"
|
|
Hallo liebe Matlab Forum User
Ich habe ein Problem.
Und zwar habe ich ein Image auf den leider ein Teil weggeschnitten ist. (relativ wenig im Vergleich zum Rest)
Nun ist meine Frage, ob ich diesen Bereich interpolieren kann, d.h. Matlab soll mir im Prinzip mit einem Algorithmus anhand der anderen Pixelwerte auf diesem Bild errechnen wie die Pixelverteilung in diesem Loch wäre.
Gibt es irgendwelche vorprogrammierten Funktionen hierfür.
Leider habe ich nicht mal einen Ansatz wie ich sowas verwirklichen soll.
Vielen Dank im Voraus.
Beste Grüsse
|
|
|
|
|
Hubertus |
Forum-Meister
|
|
Beiträge: 1.034
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.10.2013, 11:42
Titel:
|
|
Moin,
deine Angaben sind leider zu dürftig, um auf diese Frage auch nur vage zu antworten. Entscheiden ist, ob der Rest eine homogene Struktur ist oder eher eine Textur. Kannst du das Bild oder ein ähnliches Beispiel anhängen.
Viele Grüße - Hubertus
|
|
|
PeteVAR |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 02.10.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.10.2013, 12:38
Titel:
|
|
Hier wäre ein Beispiel. Der Schlitz in dem Bild sollt "ausgeglichen" werden.
Brauchen Sie noch weitere Informationen?
Beschreibung: |
|
Download |
Dateiname: |
Example matlabforum.tif |
Dateigröße: |
199.15 KB |
Heruntergeladen: |
541 mal |
|
|
|
Hubertus |
Forum-Meister
|
|
Beiträge: 1.034
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.10.2013, 12:58
Titel:
|
|
Ich kann das Bild heute nicht laden und habe mir "so ein ähnliches" gemacht. Versuche mal:
Das sind keine auf das Bild abgestimmte Werte, sondern Testwerte. Sie zeigen, welche Funktionen in Frage kommen, z.B. "strel" und "imerode". Ich würde das mal versuchen und mit den Werten spielen. Zu "strel" gibt eine ganze Reihe anderer Funktionen, die vl. auch noch bessere Ergebnisse bei dem Bild erzielen können. In meinem Testbeispiel war der Strich weg.
|
|
|
PeteVAR |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 02.10.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.10.2013, 13:09
Titel:
|
|
Vielen Dank, ich werde das mal ausprobieren.
|
|
|
PeteVAR |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 02.10.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.10.2013, 13:34
Titel:
|
|
Ich hab diese Funktionen mal ausprobiert.
Das gute zuerst, der Schlitz ist weg.
Leider wird das Bild, va falls mehrere kleine Pixelwolken vorhanden sind teilweise stark verändert.
Gewünscht ist nur diesen Schlitz zu beseitigen.
|
|
|
Hubertus |
Forum-Meister
|
|
Beiträge: 1.034
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.10.2013, 15:56
Titel:
|
|
Das Füllen von Bildbereichen ist nicht trivial. In Spezialprogrammen werden dazu die Umgebungspixel genommen und daraus eine wahrscheinliche Textur berechnet. Das ist nicht mit ein paar Matlabzeilen hinzubekommen. WEnn man höhere Anforderungen stellt, als die oben genannten, bleibt natürlich die gängige Methode, die benachbarten Pixel zu kopieren und an der Fehlstelle wieder einzusetzen. Dabei ist es wichtig, dass die Bildausschnitte absolut übereinstimmen. Sonst gibt es eine Fehlermeldung. Man kann das in einem Arbeitsgang machen, sich z.B. die Pixelreihen links vom Streifen nehmen und rechts wieder einfügen, oder man nimmt je die Hälfte von der linken und rechten Seite.
Die Koordinaten bekommst du mit "impixelinfo".
I(2:220,189:220,:)=I2; %%...... ,:) steht für alle Farblayer
Das Ergebnis ist beigefügt.
Beschreibung: |
|
Download |
Dateiname: |
189.jpg |
Dateigröße: |
5.54 KB |
Heruntergeladen: |
528 mal |
|
|
|
PeteVAR |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 02.10.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.10.2013, 10:32
Titel:
|
|
|
|
|
Hallo Hubertus,
ich habe leider deine Erklärung nicht ganz verstanden, deswegen muss ich nochmals nachfragen.
Schneidest du den weissen Streifen aus (macht ja eigentlich nicht soviel sinn) oder die Pixelspalte links (oder rechts) neben dem Streifen und kopierst ihn dann über den Streifen?
Um das Bild kurz zu erklären:
Prinzipiell habe ich hier einen Gradienten, der je weiter in der Mitte des Kreises abnimmt (mit einer relativen Kontinuität). Mit deiner Methode würde ich den Gradienten (da der Streifen auch in die Mitte des Bildes ragt und hier der geringste Pixelwert ist), mit falschen Pixel überschreiben (richtig?).
Gibt es keinen Algorithmen in Matlab (ich glaube "strel", "imdilate", "imclose" sind schon Algorithmen in dieser Art), die diesen Gradienten erkennen und die Pixel ersetzen. Es würde auch genügen, den Bereich um den Streifen auszuschneiden und zu ersetzten.
Ich bin derzeit am verifizieren der verschiedenen Arten. Hierzu vergleiche ich das eigentliche Bild (der Streifen ist hier nur manuell eingefügt) mit dem Ergebniss der Algorithmen und habe leider noch nicht das gewünsche Resultat gefunden.
Vielen Dank im Voraus.
Beste Grüsse
Pete
|
|
|
Hubertus |
Forum-Meister
|
|
Beiträge: 1.034
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.10.2013, 10:40
Titel:
|
|
Alle Füllmethoden fügen Pixelwerte ein, von denen man nicht weiß, ob sie stimmen. Es ist keine Art Bildrekonstruktion, da es über diesen Bereich keine Informationen gibt. Wenn ich also diesen Bereich füllen muss, habe ich nur die Pixelwerte rechts und links von der Lücke "und nehme an", dass die Textur sich so fortsetzten wird. Das dürfte in deinem Fall auch kein Problem sein.
Ich nehme also die Pixelwerte von links (oder von links und rechts) und füge sie in die Lücke ein. Andere Methoden sind von dieser Genauigkeit viel weiter entfernt, also auch die, nach denen du gefragt hast.
|
|
|
PeteVAR |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 10
|
|
|
|
Anmeldedatum: 02.10.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.10.2013, 10:41
Titel:
|
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
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.
|
|