Python OpenCV | cv2.circle ()-Methode

| | | | | | | | | | | | | | | | | | | | | | | | | |

OpenCV-Python ist eine Python-Linkbibliothek, die entwickelt wurde, um Computer-Vision-Probleme zu lösen. Die Methode cv2.circle () wird verwendet, um einen Kreis auf ein beliebiges Bild zu zeichnen.

Syntax: cv2.circle(image, center_coordinates, radius, color, width)
Parameter: 
Bild: Es ist das Bild, auf dem der Kreis gezeichnet werden soll. 
center_coordinates: Es sind die Mittelpunktkoordinaten des Kreises. Die Koordinaten werden als Tupel mit zwei Werten dargestellt, dh (X-Koordinatenwert, Y-Koordinatenwert). 
Radius: Das ist es der Radius des Kreises. 
Farbe: Dies ist die Farbe der Grenzlinie des zu zeichnenden Kreises. Für BGR übergeben wir ein Tupel. zB: (255, 0, 0) für blaue Farbe. 
Dicke: Dies ist die Dicke der Kreisrandlinie in Pixel. Eine Dicke von -1 Pixel füllt die Kreisform mit der angegebenen Farbe.
Rückgabewert: Gibt ein Bild zurück. 
 

Wie zeichnet man einen Kreis über OpenCV-Bild?

StackOverflow-Frage

Ich verwende Python und OpenCV, um ein Bild von der Webcam zu erhalten, und ich möchte wissen, wie man einen Kreis über mein Bild zeichnet, nur einen einfachen grünen Kreis mit transparenter Füllung

enter Bildbeschreibung hier

mein Code:

import cv2 import numpy import sys if __name__ == `__main__`: #aktuellen Frame von Webcam abrufen cam = cv2.VideoCapture(0) img = cam.read() #ho w zeichnet einen Kreis???? cv2.imshow(`WebCam`, img) cv2.waitKey() 

Danke im Voraus.

Antwort

cv2.circle(img, Mitte, Radius, Farbe, Dicke=1, Linientyp=8, Verschiebung=0) ‚Üí Keine Zeichnet einen Kreis. Parameter: img (CvArr) ‚Äì Bild wo der Kreis gezeichnet wird center (CvPoint) ‚Äì Mittelpunkt des Kreisradius ( int) ‚Äì Radius der Kreisfarbe (CvScalar) ‚Äì Dicke der Kreisfarbe (int) ‚Äì Dicke der Kreiskontur if positiv, andernfalls zeigt dies an, dass ein gefüllter Kreis  gezeichnet werden soll lineType (int ) ‚Äì Typ der Kreisgrenze, siehe Linienbeschreibung shift (int) ‚Äì Anzahl der Bruchbits in den Zentrumskoordinaten und Radiuswert 

Verwenden Sie den Parameter "Dicke" nur für den Rand.

Beispiel #1

def blob(x): """Erzeuge bei einer gegebenen Nx3-Matrix von Blob-Positionen und -Größen N img_size x img_size Bilder, jeweils mit a darauf gezeichneter Klecks gegeben durch den Wert in jeder Reihe von x Eine Reihe von x = [x,y,radius].""" y = np.zeros((x.shape[0], img_size, img_size)) for i , Partikel in Enumerate(x): rr, cc = skimage.draw.circle( Partikel[0], Partikel[1], max(Partikel[2], 1), Form=(img_size, img_size) ) y[i, rr, cc] = 1 return y #%% # names (dies dient im Moment nur als Referenz!) 

Beispiel #2

def update(self, radarData): self .img = np.zeros((self.height, self.width, self.channels), np.uint8) cv2.line(self.img, (10, 0), (self.width/2 - 5, self. Höhe), (100, 255, 255)) cv2.line(self.img, (self.width - 10, 0), (self.width/2 + 5, self.height), (100, 255, 255) ) für track_number in range(1, 65): if str(track_number)+`_track_range` in radarData: track_range = radarData[str(track_number)+`_track_range`] track_angle = (float(radarData[str(track_number))+`_track_angle `])+90.0)*math.pi/180 x_pos = math.cos(track_angle)*track_range*4 y_pos = math.sin(track_angle)*track_range*4 cv2.circle(self.img, (self.w idth/2 + int(x_pos), self.height - int(y_pos) - 10), 5, (255, 255, 255)) #cv2.putText(self.img, str(track_number), # (self.width /2 + int(x_pos)-2, self.height - int(y_pos) - 10), self.font, 1, (255,255,255), 2) cv2.imshow("Radar", self.img) cv2.waitKey( 2) 

Beispiel #3

def ProcessFrame(self, frame): # segment arm region segment = self.SegmentArm(frame) # erstellt eine Kopie des segmentierten Bildes zum Zeichnen draw = cv2.cvtColor(segment, cv2.COLOR_GRAY2RGB) # Zeichne einige Helfer für die richtige Platzierung der Hand cv2.circle(draw,(self.imgWidth/2,self.imgHeight/2),3,[255,102,0],2) cv2.rectangle(draw, (self.imgWidth/3,self.imgHeight/3), (self.imgWidth*2/3, self.imgHeight*2/3), [255,102,0],2) # Finde die Hülle des segmentierten Bereichs, und basierend darauf die # Konvexitätsdefekte finden [Konturen, Defekte] = self.FindHullDefects(segment) # die Anzahl der Finger in Abhängigkeit von den Konturen und Konvexitätsdefekten ermitteln # Defekte zeichnen, die zu Fingern gehören, grün, andere rot [nofingers,draw] = self.DetectN umberFingers(contours, defekts, draw) # drucke die Anzahl der Finger auf das Bild cv2.putText(draw, str(nofingers), (30,30), cv2.FONT_HERSHEY_SIMPLEX, 1, (255,255,255)) return draw 

Beispiel #4

def mark_hand_center(frame_in,cont): max_d=0 pt=(0,0) x,y,w,h = cv2.boundingRect(cont) for ind_y in xrange(int( y+0.3*h),int(y+0.8*h)): #ca. 0.25 bis 0.6 Höhenbereich (schnellere Berechnung mit guten Ergebnissen) für ind_x in xrange(int(x+0.3*w),int(x+ 0.6*w)): #ca. 0.3 bis 0.6 Breitenbereich (Schnellere Berechnung mit guten Ergebnissen) dist= cv2.pointPolygonTest(cont,(ind_x,ind_y),True) if(dist>max_d): max_d=dist pt=( ind_x,ind_y) if(max_d>radius_thresh*frame_in.shape[1]): thresh_score=True cv2.circle(frame_in,pt,int(max_d),(255,0,0),2) else: thresh_score=False return frame_in,pt,max_d,thresh_score # 6. Geste finden und anzeigen 

Beispiel #5

def update(self, radarData): self.img = np.zeros((self.height, self.width, self.channels) , np.uint8) cv2.line(self.img, (10, 0), (self.width/2 - 5, self.height), (100, 255, 255)) cv2.line(self.img, ( self.width - 10, 0), (self.width/2 + 5, self.height), (100, 255, 255)) für track_number in range(1, 65): if str(track_number)+`_track_range` in radarData: track_range = radarData[str(track_number)+`_track_range`] track_angle = (float(radarData[str(track_number)+`_track_angle`])+90.0)*math.pi/180 x_pos = math.cos(track_angle) *track_range*4 y_pos = math.sin(track_angle)*track_range*4 cv2.circle(self.img, (self.width/2 + int(x_pos), self.height - int(y_pos) - 10), 5, (255, 255, 255)) #cv2.putText(self.img, str(track_number), # (self.width/2 + int(x_pos)-2, self.height - int(y_pos) - 10), self .font, 1, (255,255,255), 2) cv2.imshow("Radar", self.img) cv2.waitKey(2) 


Archivierte Version

OpenCV-Python —¬†ist eine Python-Bindung Bibliothek zur Lösung von Computer-Vision-Problemen.¬†cv2.circle () wird verwendet, um einen Kreis auf ein beliebiges Bild zu zeichnen.

Syntax: cv2.circle (Bild, Zentrumskoordinaten, Radius, Farbe, Dicke)

Parameter:
Bild: Es ist das Bild, auf dem der Kreis gezeichnet werden soll.
center_coordinates: Es sind die Mittelpunktskoordinaten des Kreises > X Koordinatenwert, Y Koordinatenwert).
Radius: Dies ist der Radius des Kreises.
Farbe: Es ist die Farbe der Grenzlinie des zu zeichnenden Kreises sa tuple.¬†zB: (255, 0, 0) für blaue Farbe.
Dicke: Es ist die Dicke der Kreisrandlinie in px .¬ †Die Dicke von -1 px füllt die Form des rectangle-method/">Rechtecks mit der angegebenen Größe Farbe.

Rückgabewert: Gibt ein Bild zurück.

Das Bild wird für alle folgenden Beispiele verwendet:

Beispiel Nr. 1:

# Python-Programm zur Erläuterung der cv2.circle ()-Methode

 
# cv2 import

import cv2 

 
# path

path = r `C: UsersRajnishDesktoppythonengineeringgeeks.png`

  
# Bild im Standardmodus lesen

image = cv2.imread (Pfad)

 
# Name des Fensters, in dem die Bild wird angezeigt

window_name = `Bild `

  
# Zentrumskoordinaten

center_coordinates = ( 120 , 50 )

 
# Kreisradius

Radius = 20

  
# Blaue Farbe in BGR

Farbe = ( 255 , 0 , 0 )

 
# Strichstärke 2 px

Dicke = 2

 
# Verwenden der cv2.circle ()-Methode
# Zeichne einen Kreis mit einem blauen Rand von 2 px

image = cv2.circle (Bild, Zentrumskoordinaten, Radius, Farbe, Dicke )

 
# Bild anzeigen
cv2.imshow ( Fenstername, Bild) 

Ausgabe:

Beispiel Nr. 2:
Verwendung von - 1 px Dicke, um das rectangle-method/">Rechteck mit Rot zu füllen.

# Python-Programm zur Erläuterung der cv2.circle () Methode

 
# cv2 import

import cv2 

 
# path

path = r `C: UsersRajnishDesktoppythonengineeringgeeks.png`

 
# Bild im Standardmodus lesen

image = cv2.imread (Pfad)

 
# Name des Fensters, in dem das Bild angezeigt wird

window_name = `Image`

  
# Zentrumskoordinaten

center_c Koordinaten = ( 120 , 100 )

€ †¬†
# Kreisradius

radius = 30

  
# Rot in BGR

color = ( 0 , 0 , 255 )

 
# Linienstärke -1 px

Stärke = - 1

 
# Using die Methode cv2.circle ()
# Zeichne einen -1 px roten Kreis

image = cv2.circle (Bild, Zentrumskoordinaten, Radius, Farbe, Dicke)

< code class = "undefinierte Leerzeichen">  
# Anzeige eines Bildes
cv2.imshow (window_name, image ) 

 

Ausgabe: