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

Graubild ausschnitt mit boundingbox geht das ?

 

theves123
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 17.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.12.2014, 17:46     Titel: Graubild ausschnitt mit boundingbox geht das ?
  Antworten mit Zitat      
Hi
ich wollte in einem Bild Quadarte erkenne und diese dann ausschneiden als eigene Graubilder und diese dann in einer liste abspeichern um dadrüber einen Kreis erkenner laufen zu lassen.
mein ansatzt ist diese:

Code:
%cameList = webcamlist;
%Verbinden mit der Camera
cam = webcam(1);
%bildmachen
%rgbImage=snapshot(cam);
%für die liste
bildausschnit={};
i=0;
rgbImage=imread('testbild2.jpg');
%bild konvertiere
%grayImage=rgb2gray(rgbImage);
% Umwandeln des Graustufenbildes in ein schwarz/weißbild-Bild
 bbw = ~im2bw(rgbImage,graythresh(rgbImage));
% Hier werden alle schwarzen Bereiche, die komlett von weißen Bereichen umgeben sind, auf weiß gesetzt
bfill = imfill(bbw,'holes');

barea = bwareaopen(bfill,1);
%Hier werden alle Bereiche gelabelt
bfinal = bwlabel(barea);
%quadrat matrix erstellen
start = regionprops(bfinal,'boundingbox');
%bildzeigen
imshow(rgbImage); hold on;
%Quadrate finde und markiren

for cnt = 1 : numel(start)
    %Quadratfinden
    bb = start(cnt).BoundingBox;
    %Quadratmarkiren
    rectangle('position',bb,'edgecolor','r','linewidth',1);
    bb2=int32(bb);
    bildausschnit{i}=grayImage(bb2);
    i=i+1;
end

edit winkow: code umgebung eingefü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: 18.12.2014, 07:27     Titel:
  Antworten mit Zitat      
Moin,

wenn du BoundingBox anwenden willst, musst du den Code wie folgt ändern.

Code:
s=regionprops(bfinal,'BoundingBox');
rectangle('Position',s(1).BoundingBox);
Ausschnitt=imcrop(grayImage,s(1).BoundingBox);
figure; imshow(Ausschnitt)


Grüße - Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
theves123
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 17.12.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.12.2014, 12:20     Titel:
  Antworten mit Zitat      
danke für die hilfe nun habe ich ein neues problem nämlich das er :
Error using kreiserkennung (line 39)
Not enough input arguments.
so sieht der cod aus:
function kreisgefunden = kreiserkennung(kreisgefunden2)
cameList = webcamlist;
%Verbinden mit der Camera
cam = webcam(1);
%bildmachen
rgbImage=snapshot(cam);

kreisgefunden1=0;
%rgbImage=imread('testbild2.jpg');
%bild konvertiere
grayImage=rgb2gray(rgbImage);
% Umwandeln des Graustufenbildes in ein schwarz/weißbild-Bild
bbw = ~im2bw(rgbImage,graythresh(rgbImage));
% Hier werden alle schwarzen Bereiche, die komlett von weißen Bereichen umgeben sind, auf weiß gesetzt
bfill = imfill(bbw,'holes');

barea = bwareaopen(bfill,1);
%Hier werden alle Bereiche gelabelt
bfinal = bwlabel(barea);
%quadrat matrix erstellen
start = regionprops(bfinal,'boundingbox');
%bildzeigen
imshow(rgbImage); hold on;
%Quadrate finden und Kreise

for cnt = 1 : numel(start)
%Quadratfinden
bb = start(cnt).BoundingBox;
%Quadratmarkiren
rectangle('Position',start(cnt).BoundingBox);
ausschnitt=imcrop(grayImage,start(cnt).BoundingBox);
%kreise suche
[centers, radii, metric]= imfindcircles(ausschnitt,[1 50]);
%kreis gefunden ja?/nein?
if centers~= 0;
%falls gefunden dann umspeichern
kreisgefunden1 = ausschnitt;
%hast du ihn schon gefunden dann nichts machen
if kreisgefunden2~=kreisgefunden1
%ansonsten abspeichern
kreisgefunden=kreisgefunden1;
end
end
end

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