matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Dt. Schulen im Ausland: Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenMatlabSteigung aus Matrix berechnen
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Deutsch • Englisch • Französisch • Latein • Spanisch • Russisch • Griechisch
Forum "Matlab" - Steigung aus Matrix berechnen
Steigung aus Matrix berechnen < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Steigung aus Matrix berechnen: Idee, Korrektur
Status: (Frage) beantwortet Status 
Datum: 17:27 Do 07.06.2007
Autor: histrio82

Hallo zusammen!

Da ich mich noch nicht allzu gut in Matlab auskenne und ich auch bisher in verschiedenen Foren nichts passendes zu meinem Thema gefunden habe, möchte ich hier mal um Eure Hilfe sowie Unterstützung bitten!

Also nun zu meinem Problem:
Aus einer Intensitäts-Bildmatrix (bspw. 500x600), in der die Werte von einer Geraden liegen, möchte ich den Anfangs- sowie den Endpunkt dieser Gerade ermitteln, um daraus letztendlich mittels atan2 oder cart2pol den Neigungswinkel zu bestimmen. Man muss dazu sagen, dass die Bildmatrix auch Rauschwerte beinhaltet, weswegen es natürlich nicht schlecht wäre, evtl. Intensitätsgrenzen zu setzen (bspw. Intensität von 40 gehört noch zur Geraden dazu, und alles unter 30 ist definitiv Rauschen)...

Natürlich könnte man das Bild auch manuell auslesen, aber da es länger dauert und ich mehrere Bilder auswerten möchte, sollte es auf jeden Fall automatisch ablaufen!!!

Ich habe es schon per for- als auch while-Schleife probiert, bin jedoch leider zu keinem Ergebnis gekommen.

Im Folgenden stelle ich mal ein paar Auszüge meines Codes rein. Wäre echt klasse, wenn mir der ein oder andere helfen könnte, den Code entweder zu verbessern oder mir eine gute Alternative vorzuschlagen.


CODE:
bild = imread('datei.jpg');

[laenge, breite] = size(bild);

igo = 45;  %obere Intensitätsgrenze
igu = 40; % untere Intensitätsgrenze

for k=1:breite
    for i=1:laenge
        %if ig==bild(i,k) | ig+1==bild(i,k) | ig+2==bild(i,k) | ig+3==bild(i,k)
        while (igo > bild(i,k) > igu) && ((bild(i,k-1) && bild(i,k+1) && bild(i-1,k)) < 40) & ((bild(i-1,k-1) && bild(i-1,k+1)) <40)
            neigung(1,1) = i; %Abspeichern der Zeile in Neigung (sollte danach dann y1 entsprechen)
            neigung(1,2) = k; %Abspeichern der Spalte in Neigung (sollte danach x1 entsprechen)
            neigung(1,3) = bild(i,k); %Intensitätswert aus i,k wird in Neigung abgespeichert
        
        end
    end
end



Falls Fragen bestehen sollten, bitte auch stellen!

Ansonsten schon mal vielen Dank für Eure Mühe!




Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.

        
Bezug
Steigung aus Matrix berechnen: Antwort
Status: (Antwort) fertig Status 
Datum: 19:52 Do 07.06.2007
Autor: dormant

Hi!

Von Bild-analyse habe ich keine Ahnung, aber ich glaube ich habe einen Fehler in deinem Code entdeckt zu haben.

Neigung soll eine (knapp 300 000)x3 Matrix sein, oder? An sich macht dein Code 300 000 Überprüfungen der Intensität und speichert die x-y-Werte des letzten Pixels, der die Intesiätsbedinung erfüllt. Die erste Dimension bei neigung muss also ein Index sein und nicht eine 1.

Ich schlage so was vor:

zaehler=1;
for k=1:breite
    for i=1:laenge
        if ('Intensitätsbedingungen'==true)
            neigung(zaehler,1) = i;
            neigung(zaehler,2) = k;
            neigung(zaehler,3) = bild(i,k);
            zaehler=zaehler+1;
        end
    end
end

Und deine Intensitätsbedingung habe ich auch gar nicht verstanden.

while (igo > bild(i,k) > igu) && ((bild(i,k-1) && bild(i,k+1) && bild(i-1,k)) < 40) & ((bild(i-1,k-1) && bild(i-1,k+1)) <40)

Ich hätte gedacht das liefert einen Syntaxfehler. Das geht bestimmt einfacher. Und mit if.

Gruß,
dormant

Bezug
                
Bezug
Steigung aus Matrix berechnen: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 13:26 Fr 08.06.2007
Autor: histrio82

das mit den Bedingungen in der while-Schleife hat folgenden Sinn:

da die Matrix ja mit Rauschwerten versehen ist und die Matrix ja nicht umbedingt genau den Intensitätswert 40 (bspw.) haben muss, muss ich ja gewisse Grenzen setzen.
bild(i,k-1), bild(i-1,k) usw. haben den Sinn, dass ich mir die Werte in den Nachbar-Pixeln anschau, da es mir ja sonst passieren kann, dass ich mitten in der Geraden (mit einer bestimmten Länge und Dicke) den Wert auslese, obwohl das natürlich nicht korrekt sein kann, da der Winkel ja dementsprechend auch dadurch verändert wird, wenn man jetzt den Pixelwert links von der Geraden oder rechts von der Geraden abliest (bspw. wenn die Gerade 10Pixel oder mehr breit ist, aber schief im Bild liegt!)

Ansonsten vom Ansatz her hab ich es auch schon so wie du es mir vorgeschlagen hast, probiert, allerdings werden bei mir leider keine Daten ausgespuckt!

Wäre also echt klasse, wenn mir jmd. helfen könnte!

Bezug
                        
Bezug
Steigung aus Matrix berechnen: Antwort
Status: (Antwort) fertig Status 
Datum: 16:24 Fr 08.06.2007
Autor: dormant

Hi!

Ich muss zugeben, dass Rausch Herausfilterungskriterien nicht ganz verstehe, aber gehen wir davon aus, die sind i.O. Dann hast du eine Matrix neigung, die an sich keine Neigung enthält, sondern die um Rausch korrigierten Daten. Was willst du damit machen? Dein Code spuckt ja nichts raus, der liest einfach bestimmte Daten ein und filtert welche raus, mehr nicht. Was soll danach passieren?

Gruß,
dormant

Bezug
                                
Bezug
Steigung aus Matrix berechnen: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 18:21 Fr 08.06.2007
Autor: histrio82

Naja, never mind.... hab das Problem jetzt anders lösen können und funktioniert prima.

Allerdings trotzdem vielen Dank für die Unterstützung!


Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]