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

möchte ganze Zahlen als Kommazahlen darstellen

 

Leine

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.12.2009, 14:59     Titel: möchte ganze Zahlen als Kommazahlen darstellen
  Antworten mit Zitat      
Ich lese mit meinem Programm aus einer ROI (Region of Interest) die verschiedenen Pixelwerte aus, welche ganzzahlig sind.
Nun rechne ich den Durchschnitt der Pixelwerte aus, da diese logischerweise nicht unbedingt ganzahlig sind, möchte ich das Ergebniss in Kommadarstellung haben.
Dies gibt mir aber folgender Code leider nicht aus.

Dies wird übrigends für mehrere Bilder durchgeführt, deshalb der Vektor signd(c1-c?).

Sg = ist der Wert aller aufsummierten Pixelwerte in der ROI
signd(c1) = der Vektor in welchem die Durschnittswerte eingespeichert werden sollen


Code:

.
.
.
diverse Schleifen die mir das Bild raussuchen, die roi einzeichnen und die
Einzelnen Pixel aufsummieren
.
.
.
signd(c1) = Sg / (Pixelanzahl in der ROI);
.
.
.
 



Beispiel:

ROIgröße = 3 x4 Pixel
Pixelwerte [60 74 76 83 24 64 96 25 47 29 46 49]

Sg = 673
signd(c1) = 673/12
signd(c1) = 56.0833 % das wäre optimal
signd(c1)= 56 % das bekomme ich

Jetzt gibt mir Matlab aber das Ergebniss 56 in den Vektor.
Da ich diese Werte für weitere Berechnungen brauche und mir dieser "Quantisierungsfehler" nicht in den Kram passt, wäre es super wenn mir jemand helfen könnte.
Wahrscheinlich hab ich einfach nur ein Brett vor dem Kopf.

Danke

PS: habe Matlab 7.9.0 (R2009b)


Jan*
Forum-Century

Forum-Century


Beiträge: 178
Anmeldedatum: 06.11.09
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 04.12.2009, 15:16     Titel:
  Antworten mit Zitat      
Hi,

kann es sein, dass der Datentyp von signd int oder uint ist? Das bekommst du heraus indem du bei der Variablenliste im Workspace die Spalte 'class' hinzufügst.

Gruß Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Leine

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.12.2009, 15:38     Titel: Programm
  Antworten mit Zitat      
Hab ich mir auch schon gedacht,
ist aber double.

Ich setzt mal das ganze Programm rein,
ist zwar nicht die höchste Programmierkunst aber ich programmiere erst seit 3 Wochen (überhaupts).

signwork.txt
 Beschreibung:

Download
 Dateiname:  signwork.txt
 Dateigröße:  2.62 KB
 Heruntergeladen:  497 mal
 
Leine

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.12.2009, 15:45     Titel: Shit
  Antworten mit Zitat      
Habs nochmal mit einer Testvariablen laufen lassen,

das Zwischenergebniss ist uint16, aber danach im Vektor wieder double

wie kann ich des machen das er mir das gleich in double rechnet?


PS:
Problem liegt in Zeile 55 -58
 
Jan*
Forum-Century

Forum-Century


Beiträge: 178
Anmeldedatum: 06.11.09
Wohnort: ---
Version: R2007b
     Beitrag Verfasst am: 04.12.2009, 15:47     Titel:
  Antworten mit Zitat      
Ich sehe gerade, dass du da nichts anderes als den Durchschnitt berechnest. Mach das doch mal mit der Matlab-Funktion 'mean'

Wenn du bei deiner Lösung bleiben willst, musst du das Zwischenergebnis casten:

Code:


Gruß Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Leine

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.12.2009, 15:57     Titel: Danke
  Antworten mit Zitat      
Vielen Dank,

hab das Programm schnell auf mean umgeschrieben (das mit dem double hat irgendwie nicht gefunzt)
und jetzt funktionier es einwandfrei.

Grüße,

Linus
 
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 - 2025 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.