2017-05-30 5 views
1

Ich bin neu in der Bildverarbeitung. Ich habe ein Graustufenbild wie dieses mit 4 Kreisen in Mitten von jeder Kante:So finden Sie den optimalen Grauthresh für die Funktion im2bw

enter image description here

Ich möchte überprüfen, ob Ränder der kleineren quadratischen die Kreise auf sie halbieren. Anders ausgedrückt, wie groß ist der Abstand zwischen der Mitte des Kreises und der zugehörigen Kante. Ich habe unter dem Code geschrieben. Zuerst versuche ich die Kantenlänge zu finden und finde die Mitte jeder Kante.

BW1=im2bw(image,0.45); 
BW1=imcomplement(BW1); 

BW1=imclearborder(BW1); 
BW1=bwconvhull(BW1); 
Area=bwarea(BW1); 
side=sqrt(Area); 
s    = regionprops(BW1, 'Centroid'); 
sx1   = round(s.Centroid(1)); 
sy1   = round(s.Centroid(2)); 
C1=[sx1,(sy1-side./2)]; %% middle of top edge 
C2=[(sx1+side./2),sy1]; %% middle of right edge 
C3=[sx1,(sy1+side./2)]; %% middle of bottom edge 
C4=[(sx1-side./2),sy1]; %% middle of left edge 

Dann finde ich Mitte jeden Kreis wie unten und ich berechnen ihre Entfernung von der zugehörigen Kante:

BW2=im2bw(image,0.6); 
BW2=bwareaopen(BW2,70); 
S  = regionprops(BW2, 'Centroid'); 
centroids = round(cat(1, S.Centroid)); 

D1=centroids(5,:)-C1; %% distance from top edge 
D2=centroids(6,:)-C2; %% distance from right edge 
D3=centroids(4,:)-C3; %% distance from bottom edge 
D4=centroids(3,:)-C4; %% distance from left edge 

Aber das Problem ist, dass, wenn ich level Wert von im2bw ändern, ich anders bekommen Ergebnisse. Wie kann ich optimale level finden, um zuverlässige Ergebnisse zu haben? Vielen Dank im Voraus.

+0

hast du 'graythresh' versucht –

+0

Wenn ich graythresh verwende, vermisse ich das kleinere Quadrat und alle Kreise. – Mahdie

Antwort

1

Sie Ihr Niveau optimieren können und es auf dem Bild machen selbst abhängen (in Abhängigkeit von der Mittelwert oder Median usw. beispielsweise level = 0,5 * Median (Bild))

Ein anderer Weg ist, um normalize Ihre Bilder und Verwendung eine konstante Wertschwelle, die Sie je nach Anwendung und Daten selbst herausfinden.

+0

Können Sie bitte mehr erklären? Ich normalisiere mein Bild, aber das neue Bild wird völlig dunkel. – Mahdie

+0

wie normalisierst du? (versuchen Sie die Gammakorrektur, wenn es zu dunkel ist, um sie zu visualisieren) –

+0

Sorry, ich bin verwirrt. Ich weiß sehr wenig über Bildverarbeitung. Gibt es eine Möglichkeit, mein Problem zu beheben, anstatt es zu normalisieren? – Mahdie

Verwandte Themen