WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Warum interpoliert man bilder matlab

 

medicus
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 15.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.02.2010, 13:49     Titel: Warum interpoliert man bilder matlab
  Antworten mit Zitat      
Hallo leute.ich hab mal eine ganz grundsätliche Frage zur Interpolation von Bilder in Matlab.

Warum werden bilder interpoliert?


ich hab bei wiki alles zu interpolation gelesen.
aber warum speziell bilder interpoliert werden bleibt offen?

danken für hilfe

beste grüße
medicus
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden


medicus
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 15.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.02.2010, 14:26     Titel:
  Antworten mit Zitat      
Ich hab doch was dazu gefunden:

zitat wiki

in vielen Anwendungen von Interpolationsverfahren wird behauptet, dass durch Interpolation neue Daten aus bestehenden Daten hinzugewonnen werden. Dies ist aber falsch. Durch Interpolation kann nur der Verlauf einer kontinuierlichen Funktion zwischen bekannten Abtastpunkten abgeschätzt werden. Diese Abschätzung basiert meist auf der Annahme, dass der Verlauf einigermaßen „glatt“ ist, was in den meisten Fällen zu plausiblen Resultaten führt. Die Annahme muss aber nicht notwendigerweise zutreffen. Höhere Frequenzanteile, die bei der Digitalisierung eines Signals aufgrund des Abtasttheorems verloren gegangen sind, können auch durch anschließende Interpolation nicht wieder rekonstruiert werden.
Interpolation einer Linie

In der Bildbearbeitung verwendet man Interpolationsverfahren, um gerasterte Bilder so zu skalieren dass das Bild ansehnlich bleibt (Bildinterpolation). In gängigen Bildbearbeitungssystemen wird häufig die bilineare oder bikubische Interpolation verwendet. Die Interpolationsverfahren sind meist in Form digitaler Filter implementiert (Gauß-Filter, Lanczos-Filter).

zitat ende

was ich mich aber jetzt frage ist wann man eine spline interpolation und wann eine lineare interpolation verwendet?


was da jemand was ?


danke beste grüße
medi
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 15.02.2010, 14:33     Titel:
  Antworten mit Zitat      
Interpolation in der Bildverarbeitung benötigt man zum Beispiel bei der Veränderung der Bildgrösse, hier z.B. steht was:

http://www.mathworks.com/access/hel.....lbox/images/imresize.html

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 15.02.2010, 14:35     Titel:
  Antworten mit Zitat      
Splines in der Bildverarbeitung? Glaube ich eher nicht.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 15.02.2010, 14:48     Titel:
  Antworten mit Zitat      
Es gibt ein Interpolationsprogramm für Bilder, dass neben bilinear und kubic auch die Interpolationsmethode "Spline" ( Programm: S-Spline ) enthält.

Viele Grüße

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 15.02.2010, 14:55     Titel:
  Antworten mit Zitat      
OK, dann schauen wir doch einmal was der MEISTER sagt:

http://blogs.mathworks.com/steve/20.....ation-with-integer-input/

"Yes, you can use interp2 for cubic spline interpolation of an image. ... However, cubic spline interpolation is more involved, because the proper kernel weights are data-dependent."

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
medicus
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 15.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.02.2010, 15:36     Titel:
  Antworten mit Zitat      
Ich frage mich aber unter welchen bedingungen es günstiger ist linear oder mittels spline (linear, kubisch) zu bilder zu interpolieren.Worin besteht der unterschied wenn ich ein bild.jpg linear oder mit splines interpoliere?

nehmen wir an, wir haben ein einfaches Kreuz.dieses soll jetzt interpoliert werden.nun frag ich mich welche methode da besser ist.spline oder linear und wie sich das jeweilige verfahren auf mein bildergebnis auswirkt?

Meine vermutungen:

Linear Interpolation:

Ich nehme mir zwei geeigntet Punkte aus meinem bild kreuz.jpg.z.B den nördlichste und den südlichsten und oder den westlichsten und den östlichsten und verbinde diese durch eine grade,


Spline:

wähle ich die lineare methode. und teil das kreuz in intervalle auf.
z.B
nördlichster Punkt-Mittelpunkt-südlichster Punkt anlog für westen-osten
nun interpoliere ich diese punkte


mein fazit:
Zugegebn kein treffendes Beispie.vll hätte man einen kreis nehmen solln.
=> linear-methode:
Vorteil:einfacher zu realisiern nur ein Interpolationspolynom
nachteil:nicht das ganze kreuz zu sehen
=>spline
Vorteil:4polynome=> ganzes kreuz zu sehen
Nachteil:schwieriger zu realisiern

was meint ihr?
welche methode würdet ihr wann nutzen?
und wie wirkt sich das jeweils auf das bild aus?


danke für hilfe
beste grüße
medicus
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 15.02.2010, 18:53     Titel:
  Antworten mit Zitat      
Du hast es schon selber richtig erkannt. Es kommt sehr stark auf den Bildinhalt und auf die zu erzielende Vergrößerung an. Die beste Methode ist, die unterschiedllichen Ergebnisse im Vegleich auszuwerten. Ich habe nur Bildinhalte, die in der Spline-Interpolation bessere Ergebnisse aufzeigen. Kenne daher die Methode sehr gut. Eine Regel aufzustellen ist sehr schwierig. Ich muß jedes Beispiel mit den anderen Verfahren vergleichen.

Jetzt bin ich natürlich neugierig auf die Befehlsfolge in Matlab. Kenne mich aber in der Programmierung nicht sehr gut aus und würde mich darüber freuen, wenn hier ein Beispiel den Weg aufzeigt. Der Link von Andreas ist leider nur ein Auszug. Es gibt zwar Beispiele im Netz, die scheinen mir aber mit zusätzlichen Funktionen befrachtet zu sein.

Viele Grüße
Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 16.02.2010, 09:09     Titel:
  Antworten mit Zitat      
Hallo erstmal,

nachdem ich nun das halbe Netz durchgrast habe, auf der Suche nach einer Funktion für "interp2" habe ich nur Unvollständige gefunden, die mir auch noch fehlerhafte Ergebnisse liefern. Ich möchte ein Graubild 100x100 auf 1000x1000 mit der Funktion 'spline' vergrößern. Eine fehlerhafte Funktion sieht so aus:
Code:

I=double(imread('Test.tif'))  % Graubild 100x100
[X,Y]=meshgrid(1:size(I,2),1:size(I,1)));
[X1,Y1]=meshgrid(2:1:1000);
Z1=interp2(X,Y,I,X1,Y1,'spline');


Da ich mich in der Programmierung nicht so gut auskenne (nutze in der Regel GUI's) bitte ich euch um Hilfe. Was muß ich ändern (bitte mit Code)
Der Vorteil in Matlab ist, dass das Programm S-Spline keine *.tif Bilder verarbeitet (jedenfalls nicht meine Version). Da ist Matlab mal wieder eine Nase voraus.

Herzlichen Dank für eure Hilfe
Viele Grüße
Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Polis Tyrol
Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 08.01.10
Wohnort: Leoben
Version: 7.9.0.529 (R2009b)
     Beitrag Verfasst am: 01.03.2010, 11:38     Titel:
  Antworten mit Zitat      
Dein Code ist wirlklich sehr fehlerhaft. Du hast beispielsweise eine Klammer zuviel geschrieben. Und die Funktion double ist auch nicht zu empfehlen. Du meinst wohl eigentlich im2double?!

Ich hab' aber auch nicht geschafft, jedenfalls nicht mit dieser Methode. Was funktioniert hat, ist:
Code:
I = im2double(imread('cameraman.jpg')); % Graubild 341x341
Z1 = interp2(I, 1, 'spline');


Damit wird das Bild auf das Doppelte aufgeblasen. Der Befehl
Code:
Z1 = interp2(I, 2, 'spline');
würde es auf's vierfache vergrößern. Ist ein wenig eigenartig.

Zur Frage von zuvor: Klarerweise nutzt man Interpolation dazu, Bilder zu vergrößern, ohne dass sie pixelig aussehen. Die Vergrößerung mittels splines ist dabei natürlich viel schöner, aber auch aufwendiger und für die meisten Anwendungen wohl zu aufwendig. Erst bei sehr starken Vergrößerungen zeigt es deutliche Unterschiede gegenüber linearer Interpolation.

Was die Funktion betrifft, da bin ich ratlos. Warum funktioniert diese Funktion nicht:
Code:
I = im2double(imread('cameraman.jpg'));  % Graubild 341x341
[X1, Y1] = meshgrid(1:1:1000, 1:1:1000);
Z1 = interp2(I, X1, Y1);


Würde mich sehr interessieren, weil ich's nicht versteh.
Private Nachricht senden Benutzer-Profile anzeigen
 
Gas-08
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 09.04.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.04.2013, 10:29     Titel:
  Antworten mit Zitat      
So geht das aber:

Code:

%Wunschgröße
Xend=5102;
Yend=3968;
 
I = im2double(imread('cameraman.jpg')
 
 [x2,y2]=size(I)
 
Factor_x=(x2-1)/(Xend-1)
 
Factor_y=(y2-1)/(Yend-1)
 
 
[X, Y] = meshgrid(1:1:y2, 1:1:x2);
 
[X1, Y1] = meshgrid(1:Factor_y:y2, 1:Factor_x:x2);
 
Z1 = interp2(X, Y, I, X1, Y1,'cubic');
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 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.