Main Content

Diese Seite wurde mithilfe maschineller Übersetzung übersetzt. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

Erkennen und messen Sie kreisförmige Objekte in einem Bild

Dieses Beispiel zeigt, wie man mit ThingSpeak™ und Image Processing Toolbox™ ein Bild von einer Website liest und die Anzahl der kreisförmigen Objekte im Bild zählt. Der berechnete Wert wird in einem ThingSpeak Kanal gespeichert.

Bild von URL lesen

Verwenden Sie webread , um das Bild von einer öffentlichen URL zu importieren. Bilddateien enthalten viele Daten. Sie benötigen nur eine Teilmenge der Bilddaten, um die Münzen zu zählen. Um die Bearbeitungszeit kurz zu halten, können Sie die Größe des Bildes ändern. Mit imresize können Sie das Bild auf 30 % seiner Originalgröße zuschneiden.

rgb = webread('https://www.publicdomainpictures.net/pictures/40000/velka/british-coins.jpg');
rgb = imresize(rgb, 0.3);
imshow(rgb)

Passen Sie die Empfindlichkeitseinstellungen an und zählen Sie Kreise

Neben mehreren zu erkennenden Kreisen enthält das Bild Münzen unterschiedlicher Farbe, die einen unterschiedlichen Kontrast zum Hintergrund aufweisen. Die messingfarbenen Münzen bilden vor diesem Hintergrund einen starken Kontrast. Die Silbermünzen sind farblich viel näher am Hintergrund. Verwenden Sie imfindcircles , um die Münzen zu zählen.

1. Standardmäßig findet imfindcircles kreisförmige Objekte, die heller als der Hintergrund sind. Setzen Sie den Parameter 'ObjectPolarity' auf 'dark' , um nach Augenringen zu suchen.

2. Die Funktion imfindcircles verfügt über einen Parameter 'Sensitivity' , mit dem Sie den internen Schwellenwert beim Suchen kreisförmiger Objekte steuern können. Setzen Sie 'Sensitivity'' auf 0,92.

3. Rufen Sie imfindcircles für dieses Bild mit dem Suchradius von [80 130] Pixeln auf. Die Länge des Mittelpunktsvektors ist gleich der Anzahl der gefundenen Kreise.

[centers, radii] = imfindcircles(rgb,[80 130],'ObjectPolarity','dark','Sensitivity',0.92);

numCircles = length(centers)
numCircles =

     5

Speichern Sie die Ergebnisse in einem ThingSpeak Kanal

Mit diesem Beispiel und einem ThingSpeak Kanal können Sie den Inhalt eines dynamischen Bildes speichern und verfolgen. Schreiben Sie die Anzahl der Kreise in einen durch die Kanal-ID angegebenen ThingSpeak Kanal. Ändern Sie channelID in Ihre Kanal-ID und geben Sie den Schreib-API-Schlüssel für Ihren eigenen Kanal mit writeAPIKey an.

channelID=17504;
writeAPIKey='23ZLGOBBU9TWHG2H';
thingSpeakWrite(channelID, numCircles, 'Writekey', writeAPIKey);

Siehe auch

(MATLAB) | (MATLAB) | (Image Processing Toolbox)

Verwandte Themen