2016-04-20 15 views

Antwort

0

Die Dokumentation zu regionprops Staaten, dass 'BoundingBox':

die Kosten kleinstes Rechteck, das die Region enthält, (...) zum Beispiel [ul_corner width]. ul_corner gibt die obere linke Ecke des Begrenzungsrahmens im Format [x y z ...] an. width gibt die Breite der Begrenzungsbox entlang jeder Bemaßung in der Form [x_width y_width ...] an. (...)

Also hat die BoundingBox eines Bildes die Form [x, y, Δx, Δy]. Nun ist es wichtig, sich daran zu erinnern, wie Matrizen in MATLAB indiziert werden. Zum Beispiel:

>> x = [1, 2; 3, 4] 
x = 
    1  2 
    3  4 

>> x(1:2, 1) 
ans = 
    1 
    3 

>> x(1, 1:2) 
ans = 
    1  2 

Wie man deutlich aus diesem Beispiel sehen kann, verwendet MATLAB eine säule erste Indexierung, dh die erste Dimension in einer Matrix ist die Säule (die y-Achse) und die zweite Dimension die Reihe (die X-Achse)!

Um einen Teil eines Bildes extrahieren Sie die BoundingBox verwenden, müssen Sie sich daran zu erinnern richtig zu tun:

>> a = imread('circlesBrightDark.png'); 
>> bw = a < 100; 
>> props = regionprops(bw,'BoundingBox'); 

>> bbox = props(2).BoundingBox 
bbox = 
    259.5000 79.5000 81.0000 81.0000 

>> x = bbox(1); 
>> y = bbox(2); 
>> dx = bbox(3); 
>> dy = bbox(4); 

>> circle = a(y : y+dy , x : x+dx) 

bw result

  bw      circle 
Verwandte Themen