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

Eine Scheibe aus dem Bild ausschneiden

 

ser
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 10.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2011, 13:38     Titel: Eine Scheibe aus dem Bild ausschneiden
  Antworten mit Zitat      
Hallo, zusammen!

ich möchte eine Scheibe aus dem Bild auschneiden. Kann mir jemand hier helfen?

mfg

ser
Private Nachricht senden Benutzer-Profile anzeigen


Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 10.06.2011, 13:43     Titel:
  Antworten mit Zitat      
Kannst Du das bitte genauer erläutern. Willst Du einen rechteckigen Ausschnitt oder einen kreisförmigen Ausschnitt oder ganz etwas anderes?
Private Nachricht senden Benutzer-Profile anzeigen
 
ser
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 10.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2011, 13:54     Titel:
  Antworten mit Zitat      
Ich möchte einen kreisförmigen Ausschnitt machen.

Genau zu sagen, es sollen mehrere kreisförmige Ausschnitte aus mehreren Bildern gemacht werden. Das heißt, Bild laden, Ausschnit zwischenspeichern, nächstes Bild laden, Ausschnitt mit kleinerem Radius zwischenspeichern und so weiter. Der Radius soll immer kleiner werden. Zum Schluss sollen alle zwischengespeicherten kreisförmigen Ausschnitte in ein Bild zusammengefügt.
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 10.06.2011, 14:15     Titel:
  Antworten mit Zitat      
Damit kannst Du einen Kreis zeichnen und den Ausschnitt speichern:

Code:
grayImage = imread('cameraman.tif');
figure; imshow(grayImage, []);
x = imfreehand();
binaryImage = x.createMask();
burnedImage = grayImage;
burnedImage(binaryImage) = 255;
maskedImage = grayImage;
maskedImage(~binaryImage) = 0;          % oder 1
figure; imshow(maskedImage);
Private Nachricht senden Benutzer-Profile anzeigen
 
ser
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 10.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2011, 20:08     Titel:
  Antworten mit Zitat      
ja, vielen dank, es geht wunderbar!!!

eine Frage noch, könnte man anstelle imfreehand einen bestimmten Wert definieren, sodass zum Schluss ein richtiger Kreis (bzw eine Scheibe, so wie eine Unterlegscheibe) rauskommt???
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 10.06.2011, 20:52     Titel:
  Antworten mit Zitat      
Das habe ich mir fast gedacht. Leider ist mir im Moment keine Kreisfunktion für den Bildausschnitt bekannt. Es gibt zwar viele Möglichkeiten einen Kreis zu zeichnen, diesen aber nicht als Maske einzusetzen. Oder ich habe etwas übersehen. Man könnte natürlich einen Kreis zeichnen und mit imfreehand entlang der Linie fahren. Dann nur noch die Daten tauschen auf ein anderes Bild. Dein Bild mit "nur Kreis" müsste natürlich die gleiche Größe haben wie Dein Originalbild, damit die Proportionen stimmen.

Viel Glück

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 10.06.2011, 21:00     Titel:
  Antworten mit Zitat      
Das habe ich mir fast gedacht. Leider ist mir im Moment keine Kreisfunktion für den Bildausschnitt bekannt. Es gibt zwar viele Möglichkeiten einen Kreis zu zeichnen, diesen aber nicht als Maske einzusetzen. Oder ich habe etwas übersehen. Man könnte natürlich einen Kreis zeichnen und mit imfreehand entlang der Linie fahren. Dann nur noch die Daten tauschen auf ein anderes Bild. Dein Bild mit "nur Kreis" müsste natürlich die gleiche Größe haben wie Dein Originalbild, damit die Proportionen stimmen. Ich habe im Moment kein Matlab zur Verfügung. Es gibt da noch die Funktion impoly und roipoly. Eine Funktion erlaubt unendlich viele Zwischenpunkte. Es muß nicht in einem Zug gezeichnet werde.

Wenn das noch nicht absolut sauber ist, könnte man in die Trickkiste greifen. Den Kreis, incl. Bildgröße, erheblich vergrößern. Dann darauf zeichnen und anschließend wieder verkleiner. Dann werden unsaubere Steps entfernt.

Viel Glück

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 11.06.2011, 09:41     Titel:
  Antworten mit Zitat      
Doch etwas übersehen!

Code:
img = imread('pout.tif');
figure; imshow(img)
h_im = imshow(img);
e = imellipse(gca,[55 10 120 120]);
BW = createMask(e,h_im);
maskedImage=img;
maskedImage(~BW)=0;
figure; imshow(maskedImage)


und evtl. hier,ähnlich:

http://newsgroups.derkeiler.com/Arc.....lab/2009-12/msg01465.html

und das könnte auch interessant sein:

http://stackoverflow.com/questions/.....ut-a-circle-from-an-image

Schöne Feiertage

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
ser
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 10.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2011, 10:15     Titel:
  Antworten mit Zitat      
Sehr schön, super Betreung!!!! Vielen Dank für schnelle Antworten. Das hilft mir weiter!!!

Schöne Feiertage, Hubertus!
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.