|
|
Find()-Funktion macht Ärger |
|
AndiBar |

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 24.11.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.11.2009, 18:27
Titel: Find()-Funktion macht Ärger
|
 |
|
 |
|
Hallo zusammen. erster Post, erste Frage :)
kurz der Hintergrund: Bildverarbeitung; ich habe eine split&merge-Funktion als Quadtree gebaut, die Bildblöcke stumpf als Quadrantenzahlen codiert.
1|2
---- sei jetzt mal ein Bild, in vier Quadranten gesplittet
3|4
Die Blöcke sind jeweils mit ihrem Farbwert in einer zweizeiligen Matrix gespeichert. Oben Blöcke, unten ihre Bildwerte.
ein Bildblock könnte also 132 heißen, oder 1124432, je nach split-ebene. In einem Schritt der Bearbeitung möchte ich nun bestimmte Blöcke/Blockgruppen, die extrahiert wurden, in der ursprünglichen Matrix finden, um ihren Farbwert auszulesen. Das mache ich mit
, wobei "QT(1,:)" die erste Zeile der Quadtreematrix ist und "Block" der gesuchte Block.
Problem:
Das klappt soweit gut, jedoch spinnt/versagt find() bei Block "323" in meinem Tesbild völlig. Sucht er nach der Variablen "Block", belegt mit 323, gibt er 'leere Matrix' zurück, gebe ich die "323" händisch in den find()-Befehl gibt er den korrekten Index an. Jede Variable, gefüllt mit dieser Zahl, wird nicht gefunden.
ich habe bei einer Suche im Netz diesen Thread in einem Forum gefunden, wo der Ersteller ein ähnliches Problem hat. Bei ihm lag die Lösung in der Genauigkeit der Nachkommastellen, ich hab jedoch einfach nur ganze Zahlen (allerdings im standardformat double).
Bin diesbezüglich etwas ratlos, denke auch schon an andere Lösungswege, aber das Problem ist doch rätselhaft genug, dass mich eine Lösung sehr interessiert. Er nimmt und findet jeden anderen BLock, ob als variable oder händisch eingegeben, bei 323 nimmt ers aber nicht als variable. Schon schräg.
Wäre für Ideen sehr dankbar :)
Frohen Advent,
Andi
|
|
|
|
|
Jan* |

Forum-Century
|
 |
Beiträge: 178
|
 |
|
 |
Anmeldedatum: 06.11.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2007b
|
 |
|
|
 |
|
Verfasst am: 26.11.2009, 18:43
Titel:
|
 |
Probier mal die doubles in int bzw. uint zu casten, bzw. die 'Block'-Werte mit round zu runden.
|
|
|
AndiBar |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 24.11.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.12.2009, 02:09
Titel:
|
 |
Am Round wirds tatsächlich liegen. Ich hab das in einem anderen Zusammenhang getestet (doppelte Blöcke per unique rausnehmen klappt nicht), gerundet läufts.
Danke für den Hinweis! Wobei mich die Ursache nach wie vor vor Rätsel stellt, da ich immer nur mit ganzen Zahlen arbeite. Irgendwo muss da wohl was im Compiler/der Verarbeitung dran drehen.
Gruß, Andi
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|