Python OpenCV | cv2.circle() metodo

| | | | | | | | | | |

OpenCV-Python è una libreria di collegamenti Python progettata per risolvere problemi di visione artificiale. Il metodo cv2.circle() viene utilizzato per disegnare un cerchio su qualsiasi immagine.

Sintassi: cv2.circle(image, center_coordinates, raggio, colore, spessore)
Parametri: 
immagine: È l`immagine su cui deve essere disegnato il cerchio. 
center_coordinates: strong> Sono le coordinate centrali del cerchio. Le coordinate sono rappresentate come tuple di due valori, ovvero (X valore della coordinata, Y valore della coordinata). 
raggio: è il raggio del cerchio. 
colore: è il colore della linea di confine del cerchio da disegnare. Per BGR, passiamo una tupla. es: (255, 0, 0) per il colore blu. 
spessore: è lo spessore della linea di confine del cerchio in px. Lo spessore di -1 px riempirà la forma del cerchio del colore specificato.
Valore restituito: restituisce un`immagine. 
 

Come disegnare un cerchio sull`immagine OpenCV?

Domanda StackOverflow

Uso python e opencv per ottenere un`immagine dalla webcam e voglio sapere come disegnare un cerchio sulla mia immagine, solo un semplice cerchio verde con riempimento trasparente

enter descrizione dell`immagine qui

il mio codice:

import cv2 import numpy import sys if __name__ == `__main__`: #get corrente frame dalla webcam cam = cv2.VideoCapture(0) img = cam.read() #ho w disegna un cerchio???? cv2.imshow(`WebCam`, img) cv2.waitKey() 

Grazie in anticipo.

Risposta

cv2.circle(img, centro, raggio, colore, spessore=1, lineType=8, shift=0) ‚Üí Nessuno Disegna un cerchio. Parametri: img (CvArr) ‚Äì Immagine in cui il cerchio è centro disegnato (CvPoint) ‚Äì Centro del raggio del cerchio ( int) ‚Äì Raggio del colore del cerchio (CvScalar) ‚Äì Spessore del colore del cerchio (int) ‚Äì Spessore del contorno del cerchio se positivo, altrimenti indica che un cerchio pieno deve essere disegnato lineType (int ) ‚Äì Tipo del confine del cerchio, vedi Spostamento della descrizione della riga (int) ‚Äì Numero di bit frazionari nelle coordinate centrali e valore del raggio 

Usa il parametro "thickness" solo per il bordo.

Esempio n. 1

def blob(x): """Data una matrice Nx3 di posizioni e dimensioni dei blob, crea N img_size x immagini img_size, ognuna con a blob disegnato su di essi dato dal valore in ogni riga di x Una riga di x = [x,y,radius].""" y = np.zeros((x.shape[0], img_size, img_size)) for i , particella in enumerate(x): rr, cc = skimage.draw.circle( particella[0], particella[1], max(particella[2], 1), forma=(img_size, img_size) ) y[i, rr, cc] = 1 return y #%% # nomi (questo è solo un riferimento per il momento!) 

Esempio #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. altezza), (100, 255, 255)) cv2.line(self.img, (self.width - 10, 0), (self.width/2 + 5, self.height), (100, 255, 255) ) for 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) 

Esempio #3

def ProcessFrame(self, frame): # segment arm region segment = self.SegmentArm(frame) # crea una copia dell`immagine segmentata su cui disegnare draw = cv2.cvtColor(segment, cv2.COLOR_GRAY2RGB) # disegna alcuni aiutanti per posizionare correttamente la mano 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) # trova lo scafo dell`area segmentata, e in base a ciò trova i # difetti di convessità [contorni,difetti] = self.FindHullDefects(segment) # rileva il numero di dita in base ai contorni e ai difetti di convessità # disegna i difetti che appartengono alle dita verdi, altri rossi [nofingers,draw] = self.DetectN umberFingers(contorni, difetti, disegno) # stampa numero di dita sull`immagine cv2.putText(draw, str(nofingers), (30,30), cv2.FONT_HERSHEY_SIMPLEX, 1, (255,255,255)) return draw 

Esempio #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)): #da circa 0.25 a 0.6 regione di altezza (calcolo più veloce con risultati ok) per ind_x in xrange(int(x+0.3*w),int(x+ 0,6*w)): #circa da 0,3 a 0,6 regione di larghezza (calcolo più veloce con risultati ok) 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 ritorno frame_in,pt,max_d,thresh_score # 6. Trova e visualizza il gesto 

Esempio n. 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)) for 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) 


Versione archiviata

OpenCV-Python —¬†è un binding Python libreria per la risoluzione dei problemi di visione artificiale.¬†cv2.circle () viene utilizzato per disegnare un cerchio su qualsiasi immagine.

Sintassi: cv2.circle (immagine, coordinate_centro, raggio, colore, spessore)

Parametri:
immagine: È l`immagine su cui deve essere disegnato il cerchio.
center_coordinates: Sono le coordinate del centro del cerchio. Le coordinate sono rappresentate come tuple di due valori ​​ie ( X valore della coordinata, Y valore della coordinata).
raggio: È il raggio del cerchio.
colore: È il colore della linea di confine del cerchio da disegnare.¬†Per BGR , passiamo sa tuple.¬†eg: (255, 0, 0) per il colore blu.
spessore: È lo spessore della linea di confine del cerchio in px .¬ †Lo spessore di -1 px riempirà la forma del rectangle-method/">rettangolo della forma specificata colore.

Valore di ritorno: Restituisce un`immagine.

L`immagine viene utilizzata per tutti gli esempi seguenti:

Esempio n. 1:

# Programma Python per spiegare il metodo cv2.circle ()

 
# cv2 import

import cv2 

 
# percorso

percorso = r `C: UsersRajnishDesktoppythonengineeringgeeks.png`

  
# Leggi l`immagine in modalità predefinita

immagine = cv2.imread (percorso)

 
# Nome della finestra in cui il viene visualizzata l`immagine

window_name = `Image `

  
# Coordinate centrali

center_coordinates = ( 120 , 50 )

 
# Raggio del cerchio

raggio = 20

  
# Colore blu in BGR

colore = ( 255 < codice classe = "normale">, 0 , 0 )

 
# Larghezza riga 2 px

spessore = 2

 
# Utilizzo del metodo cv2.circle ()
# Disegna un cerchio con un bordo blu di 2 px

image = cv2.circle (immagine, coordinate_centro, raggio, colore, spessore )

 
# Visualizza immagine
cv2.imshow ( window_name, image) 

Output:

Esempio n. 2:
Utilizzo di - 1 px di spessore per riempire il rectangle-method/">rettangolo di rosso.

# Programma Python per spiegare il cv2.circle () metodo

 
# cv2 import

import cv2 

 
# percorso

percorso = r `C: UsersRajnishDesktoppythonengineeringgeeks.png`

 
# Leggi l`immagine in modalità predefinita

image = cv2.imread (percorso)

 
# Nome della finestra in cui viene visualizzata l`immagine

window_name = `Image`

  
# Coordinate centrali

center_c oordinates = ( 120 , 100 )

¬ †¬†
# Raggio del cerchio

raggio = 30

  
# Rosso in BGR

colore = ( 0 , 0 , 255 )

 
# Spessore linea -1 px

spessore = - 1

 
# Utilizzo il metodo cv2.circle ()
# Disegna un cerchio rosso di -1 px

image = cv2.circle (immagine, coordinate_centro, raggio, colore, spessore)

< code class = "spazi non definiti">  
# Visualizzazione di un`immagine
cv2.imshow (window_name, image ) 

 

Risultato: