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

Bild laden und auf Filter anweden

 

nebben
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 08.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.12.2007, 17:08     Titel: Bild laden und auf Filter anweden
  Antworten mit Zitat      
Hallo,

ich will in Matlab ein farbiges Bild laden und dann auf das Bild einen Filter anwenden:

Das Bild befindet sich in meinem aktuellen Verzeichnis. Ich lade es mit

Code:
X=imread('blume','jpg');


Der Filter wird so verwendet:

Code:
usage: f = bandpassfilter(sze, cutin, cutoff, n)


sze,cutin,cutoff und n sind filtereigene Parameter

Wie schreibe ich in MATLAB, das ich X auf den Filter anwenden möchte und dann will ich das gefilterte Bild ausgeben?

Gruß
nebben
Private Nachricht senden Benutzer-Profile anzeigen


Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 09.12.2007, 17:28     Titel:
  Antworten mit Zitat      
Hallo nebben,

das kommt ganz auf die Funktion bandpassfilter an. Könntest Du sie vielleicht anhängen? Dann können wir gemeinsam herausfinden, wie sie an die Bilddaten kommt.
Oder gibt es eine Hilfe/einen Kommentar dazu? Dann reicht vielleicht auch das.

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
nebben
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 08.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.12.2007, 19:05     Titel: Bild laden und auf Filter anweden
  Antworten mit Zitat      
Hallo Bijick,

Hab das entsprechende M-File angehängt. Da steht nix zum Bild drin.

Gruß,
nebben

bandpassfilter.m
 Beschreibung:

Download
 Dateiname:  bandpassfilter.m
 Dateigröße:  1.48 KB
 Heruntergeladen:  1600 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 10.12.2007, 15:51     Titel:
  Antworten mit Zitat      
Ah, okay. Dann ist f eine Matrix?

Dann weiß ich aber nicht, was Dein Problem ist:

Weißt Du denn, wie Du prinzipiell (unabhängig von Matlab) den Filter auf ein Bild anwendest? Wie weit kommst Du dann mit dem Programmieren, das heißt, wo sind die Matlab-Schwierigkeiten? Hast Du Probleme mit X, oder weißt Du, was die Daten darin bedeuten?

Ich kenn mich mit Matlab besser aus als mit Bildverarbeitung. Sad Bei dem Filter selbst kann ich nicht wirklich helfen.

Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
nebben
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 08.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.12.2007, 16:47     Titel:
  Antworten mit Zitat      
Ich bin relativ neu bei Matlab.

Zitat:
Ah, okay. Dann ist f eine Matrix?


Was hilft das weiter?

Mein Problem ist wie ich dann in Matlab den Filter auf ein Bild anwende.
Was muss ich da Programmieren?

Zitat:
Weißt Du denn, wie Du prinzipiell (unabhängig von Matlab) den Filter auf ein Bild anwendest?


Vermutlich nicht. Meinst du in einem Bildverarbeitungsprogramm?

Zitat:
Hast Du Probleme mit X, oder weißt Du, was die Daten darin bedeuten?


X ist ein 3-dimensionales Array mit vielen Zahlen. Was die bedeuten weiß ich auch nicht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Bijick
Ehrenmitglied

Ehrenmitglied



Beiträge: 914
Anmeldedatum: 18.06.07
Wohnort: Nürnberg
Version: R2006b, R2008b
     Beitrag Verfasst am: 10.12.2007, 17:44     Titel:
  Antworten mit Zitat      
Hallo nebben,

ich hab jetzt mal in die Hilfe geschaut und festgestellt, dass es ja in der Image Processing Toolbox auch Bildfilter gibt. Die werden so angewandt:

Code:
originalRGB = imread('peppers.png');
imshow(originalRGB),
h = fspecial('motion', 50, 45);
filteredRGB = imfilter(originalRGB, h);
figure
imshow(filteredRGB)


Wenn Dein Filter dazu kompatibel ist, müsste es so gehen:
Code:
X=imread('blume','jpg');
imshow(X),
Xgefiltert=imfilter(X, f);
figure
imshow(Xgefiltert)


Herzliche Grüße
Bijick
_________________

>> why
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
nebben
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 08.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.12.2007, 19:21     Titel:
  Antworten mit Zitat      
Danke, so gehts.
Nun will ich ein Skript schreiben und in WORD ausgeben lassen.
Es soll erst das ursprügliche Bild gezeigt werden und dann das gefilterte.

Code:

X=imread('blume.jpg');
imshow(X)

f=bandpassfilter([4,4], 0.3, 0.4, 1);
X_gefiltert=imfilter(X,f);
imshow(X_gefiltert)
 


So müßte es doch eigentlich gehen. Aber wenn ich das Script laufen lasse, wird nur das gefilterte Bild angezeigt und nicht beide nacheinander.

Kannst du mir da vielleicht weiterhelfen ?

Grüße nebben
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.028
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 11.12.2007, 01:43     Titel:
  Antworten mit Zitat      
Hi nebben,

es werden bestimmt beide angezeigt aber nacheinander in einem Fenster (figure) und jenachdem wie groß die Bilder bzw. wie schnell der Rechner ist sieht man das erste noch oder halt nicht...

Wenn du nun vor beide imshow-Befehle
Code:
schreibst, dann öffenen sich zwei Fenster jedes mit dem entsprechenden Bild.
Wenn du in der Hilfe nach figure schaust, findest du auch noch andere Einstellungsmöglichkeiten (properties) Wink

Du kannst die Bilder auch direkt mit
Code:
imwrite(bild,'Bild1.png','png')
im Current Directory abspeichern. Natürlich nicht nur als *.png sondern auch in anderen Formaten, die Zeile soll nur als Syntax-Bsp. dienen, wobei "bild" die Variable ist, die du mit imshow darstellst.

Also müsste es bei dir ungefähr so aussehen:
Code:

X=imread('blume.jpg');
figure,
imshow(X);

f=bandpassfilter([4,4], 0.3, 0.4, 1);
X_gefiltert=imfilter(X,f);
figure,
imshow(X_gefiltert);
% wenn du das gefilterte Bild im Current Directory abspeichern möchtest:
% imwrite(X_gefiltert,'blume_gefiltert.jpg','jpg');
% wenn du das Bild im  Bsp.-Verzeichnis C:\Programme\Matlab\temp abspeichern möchtest:
% pfad = 'C:\Programme\Matlab\temp';
% imwrite(X_gefiltert,[pfad 'blume_gefiltert.jpg'],'jpg');
 

Natürlich brauchst du für die letzte Variante auch Schreibrechte in dem entsprechenden Verzeichnis (falls es nicht dein Heim-PC sein sollte Wink )...

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
nebben
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 08.12.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.12.2007, 19:08     Titel:
  Antworten mit Zitat      
Cool danke.

Weißt du vielleicht auch wie man den Code bei der Ausgabe eines Scripts in word unterdrückt, so dass nur die Bilder und die Kommentare ausgegeben werden (ohne dem Code)?
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.028
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2024a
     Beitrag Verfasst am: 11.12.2007, 19:38     Titel:
  Antworten mit Zitat      
Leider nein...
Ich höre zum ersten Mal, dass man direkt was in WORD ausgeben kann!?

Würd mich prinzipiell auch interessieren (obwohl ich eher kein Office-Fan bin) Wink

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
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.