Método Python OpenCV | cv2.círculo()

| | | | | | | | | | |

OpenCV-Python é uma biblioteca de links Python projetada para resolver problemas de visão computacional. O método cv2.circle() é usado para desenhar um círculo em qualquer imagem.

Sintaxe: cv2.circle(image, center_coordinates, radius, color, density)
Parâmetros: 
imagem: é a imagem na qual o círculo deve ser desenhado. 
center_coordinates: São as coordenadas do centro do círculo. As coordenadas são representadas como tuplas de dois valores, ou seja (valor da coordenada X, valor da coordenada Y). 
raio: é o raio do círculo. 
cor: é a cor da linha de borda do círculo a ser desenhada. Para BGR, passamos uma tupla. ex.: (255, 0, 0) para a cor azul. 
espessura: É a espessura da linha da borda do círculo em px. Espessura de -1 px preencherá a forma do círculo com a cor especificada.
Valor de retorno: retorna uma imagem. 
 

Como desenhar um círculo sobre a imagem OpenCV?

Pergunta do StackOverflow

Estou usando python e opencv para obter uma imagem da webcam, e quero saber como desenhar um círculo sobre minha imagem, apenas um simples círculo verde com transparência preencha

digite a descrição da imagem aqui

meu código:

importar cv2 importar numpy importar sys if __name__ == `__main__`: #obter quadro atual da webcam cam = cv2. VideoCapture(0) img = cam.read() #como desenhar um círculo????  cv2.imshow(`WebCam`, img) cv2.waitKey() 

Agradecemos antecipadamente. p>

Resposta

cv2.circle(img, center, radius, color, density= 1, lineType=8, shift=0) ‚Üí Nenhum Desenha um círculo. Parâmetros: img (CvArr) ‚Äì Imagem onde o círculo é desenhado no centro (CvPoint) ‚Äì Centro do raio do círculo ( int) ‚Äì Raio da cor do círculo (CvScalar) ‚Äì Espessura da cor do círculo (int) ‚Äì Espessura do contorno do círculo se positivo, caso contrário, isso indica que um círculo preenchido deve ser desenhado lineType (int ) ‚Äì Tipo do limite do círculo, consulte Deslocamento da descrição da linha (int) ‚Äì Número de bits fracionários em as coordenadas do centro e valor do raio 

Use o parâmetro "thickness" apenas para a borda.

Exemplo #1

def blob(x): """Dada uma matriz Nx3 de posições e tamanho de blob, crie N img_size x imagens img_size, cada uma com um blob desenhado neles dado pelo valor em cada linha de x Uma linha de x = [x,y,radius].""" y = np.zeros((x.shape[0], img_size, img_size)) for i , partícula em enumerate(x): rr, cc = skimage.draw.circle( partícula[0], partícula[1], max(partícula[2], 1), forma=(img_size, img_size) ) y[i, rr, cc] = 1 return y #%% # nomes (isto é apenas para referência no momento!) 

Exemplo #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. altura), (100, 255, 255)) cv2.line(self.img, (self.width - 10, 0), (self.width/2 + 5, self.height), (100, 255, 255) ) para 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) id/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) 

Exemplo #3

def ProcessFrame(self, frame): # segment arm region segment = self.SegmentArm(frame) # faz uma cópia da imagem segmentada para desenhar desenhar = cv2.cvtColor(segmento, cv2. COLOR_GRAY2RGB) # desenha alguns auxiliares para posicionar corretamente a mão 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) # encontra o casco da área segmentada, e com base nisso encontra os # defeitos de convexidade [contours,defects] = self.FindHullDefects(segment) # detecta o número de dedos dependendo dos contornos e defeitos de convexidade # desenha defeitos que pertencem aos dedos verdes, outros vermelhos [nofingers,draw] = self.DetectNumberFingers( contornos, defeitos, desenho) # imprime o número de dedos na imagem cv2.putText(draw, str(sem dedos), (30,30), cv2. FONT_HERSHEY_SIMPLEX, 1, (255,255,255)) return draw 

Exemplo #4

def mark_hand_center(frame_in,cont): max_d=0 pt=(0,0) x,y,w,h = cv2.boundingRect(cont) for ind_y em xrange(int(y+) 0,3*h),int(y+0,8*h)): #em torno de 0,25 a 0,6 região de altura (cálculo mais rápido com resultados ok) para ind_x em xrange(int(x+0,3*w),int(x+0 .6*w)): #cerca de 0,3 a 0,6 região de largura (cálculo mais rápido com resultados 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 return frame_in,pt,max_d,thresh_score # 6. Encontre e exiba o gesto 

Exemplo #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)) para track_number no intervalo (1, 65 ): if str(track_number)+`_track_range` em 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.cir cle(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) 


Versão arquivada

OpenCV-Python —¬†é uma ligação do Python biblioteca para resolver problemas de visão computacional.¬†cv2.circle () é usado para desenhar um círculo em qualquer imagem.

Sintaxe: cv2.circle (imagem, coordenadas_central, raio, cor , espessura)

Parâmetros:
imagem: É a imagem na qual o círculo deve ser desenhado.
center_coordinates: São as coordenadas do centro do círculo. ¬†As coordenadas são representadas como tuplas de dois valores ‚Äã‚Äãie ( X valor da coordenada, Y valor da coordenada).
raio: É o raio do círculo.
cor: É a cor da linha de borda do círculo a ser desenhado. ¬†Para BGR , nós p ass uma tupla.¬†ex: (255, 0, 0) para a cor azul.
espessura: É a espessura da linha da borda do círculo em px . ¬†A espessura de -1 px preencherá a forma rectangle-method/">retângulo pelo cor especificada.

Valor de retorno: Retorna uma imagem.

A imagem é usada para todos os exemplos abaixo:

Exemplo nº 1:

# programa Python para explicar o método cv2.circle ()

 
# cv2 import

import cv2 

 
# caminho

caminho = r `C: UsersRajnishDesktoppythonengineeringgeeks.png`

  
# Lê a imagem no modo padrão

imagem = cv2.imread (caminho)

 
# Nome da janela na qual a imagem é exibida

window_name = `Imagem`

  
# Coordenadas centrais

center_coordinates = ( 120 , 50 )

 
# Raio do círculo

radius = 20

  
# Cor azul em BGR

color = ( 255 , 0 , 0 )

 
# Largura da linha 2 px

espessura = 2

 
# Usando o cv2.circle () método
# Desenhe um círculo com uma borda azul de 2 px

imagem = cv2.circle (imagem, coordenadas_central, raio, cor, espessura)

 
# Exibir imagem
cv2.imshow (window_name, imagem) 

Saída: >

Exemplo nº 2:
Usando -1 px espessura para preencher o rectangle-method/">retângulo com vermelho.

# Programa Python para explicar o método cv2.circle ()

 
# cv2 import

import cv2 

 
# caminho

caminho = r `C: UsersRajnishDesktoppythonengineeringgeeks.png`

 
# Ler imagem no modo padrão

imagem = cv2.imread (caminho)

 
# Nome da janela na qual a imagem é exibida

window_name = `Imagem`

  
# Coordenadas centrais

center_coordinates = ( 120 , 100 )

  
# Raio do círculo

raio = 30

  < br> # Vermelho em BGR

cor = ( 0 , 0 , 255 )

¬ †
# Espessura da linha -1 px

espessura = - 1

 
# Usando o cv2.circle () método
# Desenha um -1 px círculo vermelho

imagem = cv2.circle (imagem, coordenadas_central, raio, cor, espessura)

<¬†code class = "espaços indefinidos">¬†¬†
# Exibindo uma imagem
cv2.imshow (window_name, image ) 

 

Saída:

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method