isnumeric < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 15:45 Do 30.08.2007 | Autor: | anitram |
halli hallo!
es geht um den befehl "isnumeric" in matlab. damit kann ich ja herausfinden ob etwas numerisch ist.
um dieses etwas geht es!
ich will herausfinden ob ein bild (.jpg, .fig, .gif,....) numerisch ist, was aber immer mit 0 also nein beantwortet wird.
das programm mit dem ich arbeite, gibt dann eine fehlermeldung aus.
kann es sein, dass der hund darin begraben liegt, dass ich release 13 habe, das programm aber für release 14 programmiert wurde???
denn theoretisch müsste das programm funktionieren....
Vielen Dank für jede Hilfe!
anitram
|
|
|
|
Hallo,
ein bisschen von deinem Code wäre hilfreich, um den Fehler zu erkennen. An der Version wird es nicht liegen, zumindest nicht an dem Befehl isnumeric, der ist schon älter.
Zeig doch mal, wie du die Bilder einliest oder besser den betreffenden Teil des Codes.
Gruß
Martin
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 16:10 Do 30.08.2007 | Autor: | anitram |
so schaut der code aus:
das sind die ersten 3 zeilen des scripts! (also davor kann der fehler nicht liegen...)
if ndims(img) ~2 || ~isnumeric(img),
error(' ''img'' has to be 2 dimensional');
end
meine eingabe in das command window sieht so aus:
function(img)
also z.bsp: function('beipielbild.jpg')
ich habe für das bild bereits ausprobiert, obs denn vielleicht wegen der dimension nicht klappt, aber die ist 2. daran kanns also nciht liegen...
Danke für dein hilfe!
lg anitram
|
|
|
|
|
Hallo,
zwei Sachen fallen mir auf:
1. Du rufst die Funktion direkt mit einem Dateinamen auf, in der Funktion selbst wird aber das Argument als bereits geladenes Bild behandelt? Oder fehlt das noch etwas?
Falls nicht, dann musst du das Bild vorher noch laden (mit imread, falls noch nicht geschehen).
2. Die Bedingung muss korrekt heißen:
if (ndims(img) ~= 2 || ~isnumeric(img)),
Falls das nicht hilft, musst du wohl mit etwas mehr Code herausrücken.
Gruß
Martin
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 08:13 Fr 31.08.2007 | Autor: | anitram |
hallo martin!
danke erstmal für deine schnelle hilfe!
ich habs jetzt auch so ausprobiert, wie du in 2. sagtest!
dann funktioniert zumindest dieser schritt und ich erhalte keine fehlermeldung wie vorher!
aber nun taucht folgende fehlermeldung auf:
??? Error using ==> -
Function '-' is not defined for values of class 'single'
den code selbst habe ich aus dem internet, die seite häng ich dir dazu, dann hast du auch wirklcih den ganzen code!
http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=9168&objectType=file
lg anitram
|
|
|
|
|
Hallo anitram,
DIESER Fehler ist nun ein Versionsproblem. Den kann man gerade noch umgehen, wenn man die Funktion statt mit
CircularHough_Grd( img , .... )
einfach mit
CircularHough_Grd( double(img) , .... )
aufruft.
Hierauf folgt nun der nächste Fehler: Es fehlt die in R14 neue Funktion accumarray. Was die macht, kannst du auf mathworks.com nachlesen.
Ich habe versucht, sie mal mit einer for-Schleife nachzubilden, aber dann dauerte es ewig und Matlab wurde irgendwie nicht fertig. Diese Lösung ist eben sehr ineffizient, dazu kommt noch die Konvertierung nach double...
Hmmm, entweder versuchst du selbst mal, eine accumarray-Funktion zu basteln (ich glaube, es ist hier nur eine Dimension nötig) oder du suchst nach einer Alternative für die Hough-Transformation (oder eben Matlab R14SP2).
(Unter R14 geht das Ganze recht flott.)
Gruß
Martin
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 09:08 Fr 31.08.2007 | Autor: | anitram |
hallo martin!
vielen vielen dank für deine hilfe!
jetzt werd ich mir mal überlegen wie ich das problem umgehe!
danke!
lg anitram
|
|
|
|