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

Schwierigkeiten Übergabe Daten an Array aus Funktion

 

Gregor
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 04.03.10
Wohnort: ---
Version: 2010a
     Beitrag Verfasst am: 19.06.2010, 14:08     Titel: Schwierigkeiten Übergabe Daten an Array aus Funktion
  Antworten mit Zitat      
Hallo,

ich schreibe grad ein Programm zur Bildverarbeitung.
Dabei werden die Bilder automatisch segmentiert und die Daten in ein Array geschrieben X_ref(:,:,:,i) enthält meine Bilder (i Stück) und X_seg(:,:,:,i) die zugehörigen Masken im Format Logical.

Mein Problem besteht darin, dass man die Masken nachher manuell nachbearbeiten soll. Hierfür habe ich ein GUI erstellt, in dem man eine Funktion aufrufen kann, die mit imfreehand eine Korrektur der Masken erlaubt. Siehe code.

Code:

function h = SetROI(hObject, eventdata, h)

%% Korrektur der ROIs
set(gcf, 'CurrentAxes', h.ax1);
ha               = imfreehand(gca);
slice            = round(get(h.SliderImg,'Value')*h.N+1);

extROI= createMask(ha);
b = h.X_seg(:,:,:,slice) + extROI;
b(b==2)= 1;

h.X_seg(:,:,:,slice)= b;
imshow(h.X_ref(:,:,:,slice), 'DisplayRange',[]); title('Original Image'); hold on;
[B,L, N] = bwboundaries (h.X_seg(:,:,:,slice,3));
            for k=1:length(B),
                boundary = B{k};
               if(k > N)
                plot(boundary(:,2), boundary(:,1), 'g','LineWidth',2);
                else
                plot(boundary(:,2), boundary(:,1), 'r','LineWidth',2);
                end
            end
            hold off
        %    delete(ha);
 

Das ganze funktioniert einmal. Eigentlich möchte ich aber über den Befehl h.X_seg(:,:,:,slice)= b; die Daten in meinem Masken-array aktualisieren. nach Ende des Funktionsaufrufes sind sie allerdings weg.
Ich hatte es schon mit set(h.X_seg, h.X_seg(:,:,:,slice), b); versucht, aber ich glaube, dass ich die Syntax nicht so richtig verstanden habe. Kann mir jemand sagen, wie ich die Daten im array aktualisieren kann?
Danke!

Viele Grüße
Gregor
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 - 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.