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

Aus Bild ein Kreisauschnitt mit def. Radius ausschneiden

 

fillcolin

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.12.2012, 23:42     Titel: Aus Bild ein Kreisauschnitt mit def. Radius ausschneiden
  Antworten mit Zitat      
Hallo an alle,

ich habe vollendendes Programm geschrieben um in einem Bild ein Kreis ähnliches Objekt zu finden.

Funktioniert super.

Im weiteren lege ich eine Maske über das Bild um alles außer dem Objekt weiß zu machen.

Funktioniert auch.

Viel lieber hätte ich aber, das ich das Objekt aus dem Bild herausschneiden kann und separat speichern.

So dass ich nachher wirklich ein Bild habe das Rund ist, also das dies auch wirklich die grenzen des Bildes ist und nicht wie in der Maske außen ein weißes Feld ist.

Kann mir jm. weiterhelfen? Ich finde einfach nichts dazu.

danke und grüße

Code:


rawimg = imread('Fußbalfeld-mit-ball.jpg');

figure(1)                                
imshow(rawimg);                          

%Filtern und CirculasHough-------------------------------------------------
fltr4img = [1 1 1 1 1; 1 2 2 2 1; 1 2 4 2 1; 1 2 2 2 1; 1 1 1 1 1];
fltr4img = fltr4img / sum(fltr4img(:));
imgfltrd = filter2( fltr4img , rawimg(:,:,1));

%tic;
[accum, circen, cirrad] = CircularHough_Grd(imgfltrd, [50 100], 8, 10);      %suche nach Kreisen
%toc;

 %Elipse Zeichnen-------------------------------------------------------
    e = imellipse(gca,[(circen(3,1)-(cirrad(3))) (circen(3,2)-cirrad(3)) 2*cirrad(3) 2*cirrad(3)]);

    %Maskenbildung und und Farbüberlagerung--------------------------------
    Maske = e.createMask();
    maskedImage=rawimg(:,:,1);
    maskedImage(~Maske)=255;            % Alles was nicht in Maske ist = Weiss
   
    figure(2)                           % Bildausgabe 1  
    imshow(maskedImage)



 


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 13.12.2012, 13:03     Titel:
  Antworten mit Zitat      
Hallo

Das Bild ist eine Matrix und jede Matrix ist quadratisch, du wirst immer Ecken um den Kreis haben, welche du aus maskieren muss.
Das Objekt kannst du aber ganz einfach ausschneiden, du gibst ja bereits die Box-Koordinaten zu IMELLIPSE

Code:

x  = circen(3,1)-cirrad(3);
y  = circen(3,2)-cirrad(3);
w = 2*cirrad(3);
h  = 2*cirrad(3);

cutout  = rawimg(y:y+h-1; x:x+w-1;)

 
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.