Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   MATLAB (https://www.delphipraxis.net/97231-matlab.html)

The Lord 7. Aug 2007 11:55


MATLAB
 
Hallo DP'ler!

Ich versuche mich gerade an MatLab und könnte ein bisschen Hilfe gebrauchen. Ich bin dabei mit Hilfe von Masken bestimmte Bereiche in Bildern zu markieren. Dazu gibt es ja auch die "Image Processing Toolbox" mit "ROI Based Processing". Soweit funktioniert auch alles, aber nur, wenn ich einen Bereich pro Bild mit Hilfe eines Polygons markiere.

Ich möchte aber mehrere Bereiche auf einem Bild markieren können. Ich schätze ich brauche dafür eine Schleife. Aber wie speichere ich die bereits markierten Polygons auf einen Bild, wenn ich einen neuen Bereich hinzufüge?


Ich hoffe ihr versteht mein Problem.
Grüße
Alex

The Lord 8. Aug 2007 12:26

Re: MATLAB
 
Ok :) Problem hat sich erledigt :)

KesseK 8. Aug 2007 14:13

Re: MATLAB
 
Darf man nachfragen wie du das Problem gelöst hast?

Grüße

The Lord 10. Aug 2007 10:54

Re: MATLAB
 
Da habe ich mich wohl zu früh gefreut. Ich habe jetzt immer einen Error, wenn ich zum nächsten Image gelangen will.


Hier ist meine Funktion:

Delphi-Quellcode:
function [] = roiselect(filename)
% function [] = roiselect(filename)
%
% This function creates a mask of an image.
% The mask will be saved at the same folder as "filename_msk.ext".
% Also more than one polygon per image are possible.

% Alexander Schuetz
% 02.08.07

I = imread(filename);
% opens the image
BW = zeros(size(I));
% creates a zero matrix
C = 1;
% initial value

while 1     
      if gra_roiselect == 0, break,end    
      imshow(I | BW);
      % combines the image with the mask
      BW = BW | roipoly;      
      [N,ext] = get_file_name(filename);
      N = strcat(N,'_msk',ext);              
end
imwrite(BW,N);
% writes the image
Das ist die Funktion, mit dessen Hilfe man die Polygons erstellen kann. Ich erzeuge mit der Funktion "gra_roiselect" noch einen Button, den gedrückt wird, um das nächste Image zu erhalten. Dieser Button liefert den Wert 0, wenn man ihn drückt. Wenn man markiert liefert die Funktion den Wert 1.
Ich kann jetzt mehrere Polygons markieren, aber nur noch auf einem Image.

Vielleicht kann mir jemand mit dem Code helfen?
Gruß!

The Lord 13. Aug 2007 11:06

Re: MATLAB
 
Ich habe meine Frage nun auch zusätzlich auf einem MatLab-Forum gestellt.
(falls es jmd. interessieren sollte)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz