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

Monotonieoperator

 

horus
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 14.06.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.06.2010, 16:33     Titel: Monotonieoperator
  Antworten mit Zitat      
Hallo
ich möchte den Monotonieoperator implementieren, doch leider ist meine implemetierung zu langsam für meinen Anwendungszweck.

Zum Monotonieoperator:

xxx
xPx P ist Pixel in einem Bild, x sind die 8 benachbarten Pixel
xxx

nun werden diejenigen Pixel gezählt die kleiner als P sind. Das ganze geschieht mit jedem Pixel aus dem Bild (mit Ausnahme der Randpixel) und aus den Werten entsteht dann ein neues Bild.

Bsp.:
Code:

aus

16   2   3  13
 5  11  10   8
 9   7   6  12
 4  14  15   1

wird

7   5
3   1
 


Meine momentane Implementierung besteht im Grunde aus 2 Schleifen um an P zu kommen und 8 if Abfragen um die Werte zu vergleichen. Dies ist mir allerdings zu langsam.

Daher meine Frage: gibt es eine andere Möglichkeit dies zu implementieren bzw. gibt es schon eine fertige Funktion oder weiß jemand wie der Monotonieoperator auf englisch heißt "monotony operator" ist es nicht, zumindest habe ich darunter nichts gefunden.
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 09.07.2010, 22:14     Titel:
  Antworten mit Zitat      
Hallo Horus,

Du könntest 2 Schleifen verwenden, um an P mitsamt den 8 Nachbarn zu kommen. Dann is das Abzählen schnell mittels SUM und logical indexing gemacht.
Code:
Block = [16, 2, 3; 5, 11, 10;  8, 9, 7];
newValue = sum(Block(:) < Block(2, 2));


Möglicherweise läßt sich Deine Funktion aber auch anders deutlich beschleunigen. Kannst Du sie posten?

Jan
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.