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

Too many inputs

 

guguli
Forum-Century

Forum-Century


Beiträge: 166
Anmeldedatum: 04.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.09.2012, 09:50     Titel:
  Antworten mit Zitat      
vielen Dank, so geht das.

Nun will ich das Bild filtern (bandpassfilter)

Hab in dem Matlabordner einen anderen Ordner für die Funktionen wie z.B. Bandpassfilter.m
Die Adresse des Ordners sieht man ja oben.
nun will ich das bild filtern
Code:

f=bandpassfilter([4,4], 0.3, 0.4, 1);
a_gefiltert=imfilter(a,f);
figure, imshow(a_gefiltert)
 


und meine Funktion lautet in den Funktionen Ordner:
Code:

function f = bandpassfilter(sze, cutin, cutoff, n)
   
    if cutin < 0 || cutin > 0.5 || cutoff < 0 || cutoff > 0.5
   error('frequencies must be between 0 and 0.5');
    end
   
    if rem(n,1) ~= 0 || n < 1
   error('n must be an integer >= 1');
    end
   
    f = lowpassfilter(sze, cutoff, n) - lowpassfilter(sze, cutin, n);
 


Kirege aber die Fehler meldung:
??? Error using ==> bandpassfilter
Too many input arguments.

Error in ==> beispiel at 15
f=bandpassfilter([4,4], 0.3, 0.4, 1);

Wo hab ich denn zuviele Argumente????

THX
Private Nachricht senden Benutzer-Profile anzeigen
Gesplittet: 04.09.2012, 12:17 Uhr von Jan S
Von Beitrag Path aus dem Forum Sonstige MATLAB Fragen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.09.2012, 18:39     Titel:
  Antworten mit Zitat      
Hallo,

bitte stelle sicher, dass auch die beabsichtigte Funktion aufgerufen wird.

- Ist die Datei gespeichert?
- Gibt es vielleicht mehrere Dateien dieses Namens, und wird eine andere verwendet als beabsichtigt?
Code:
which bandpassfilter


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
guguli
Themenstarter

Forum-Century

Forum-Century


Beiträge: 166
Anmeldedatum: 04.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.09.2012, 09:31     Titel:
  Antworten mit Zitat      
hi,
wenn ich
Code:

which bandpassfilter
 

machen, dann kommt eine andere Adresse als die Funktion gespeichert ist, nähmlich
C:\Program Files\MATLAB\R2010b\toolbox\filterdesign\filterdesign\bandpassfilter.m

SmileSmile
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 11.09.2012, 17:59     Titel:
  Antworten mit Zitat      
Hallo,

dann solltest du deiner eigenen Datei einen anderen Namen geben. Oder dir die fertige Funktion mal ansehen und schauen, ob du nicht die direkt verwenden kannst.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
guguli
Themenstarter

Forum-Century

Forum-Century


Beiträge: 166
Anmeldedatum: 04.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.09.2012, 10:39     Titel:
  Antworten mit Zitat      
Also das Problem lag daran, dass mein matlabordner auf serverpartition war nun ist er im C und der Zugriff der Bilder Funktioniert.

Nun will ich das ausgewählte Bild mit gaussfilter filtern.

Die Funktion gaussfilter.m befindet sich in dem Ordner "fuktionen" und dieser ist dann in meinem Matlabordner.
Path dazu ist dann:
Code:

path(path,'C:\Users\mottaghian\Desktop\Matlab2\Funktionen')
 


Die funktion gaussfilter.m ist wie folgt implementiert:
Code:

function [gefiltert]=gaussfilter(image,hsize,sigma)

GF=fspecial('gaussian', hsize, sigma);
gefiltert = imfilter(image, GF);

str=['Gaussfilterung - sigma: ',num2str(sigma),'; hsize: ',num2str(hsize)];
disp(str)

end
 


und ich versuch die gaussfilter funktion wie folgt aufzurufen.
Code:

for sigma=50   %20:5:80

hsize=sigma*8;
[gaussgefiltert]=gaussfilter(image,hsize,sigma);
gefiltert=gaussfilter(image,hsize,sigma);
agefiltert = imfilter(a, gefiltert);
figure, imshow(agefiltert)
end
 

Wo ist denn mein Fehler, wieso funktioniert das nicht so?????

THX
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.09.2012, 17:26     Titel:
  Antworten mit Zitat      
Hallo,

bitte die Fehlermeldung posten. Ohne ist es schwierig bis unmöglich, dir zu helfen.

Grüße,
Harald
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.