Python OpenCV-methode | cv2.circle()

| | | | | | | | | | |

OpenCV-Python is een Python-linkbibliotheek die is ontworpen om problemen met computervisie op te lossen. De methode cv2.circle () wordt gebruikt om een cirkel op een afbeelding te tekenen.

Syntaxis: cv2.circle(afbeelding, center_coordinates, straal, kleur, dikte)
Parameters: 
afbeelding: dit is de afbeelding waarop de cirkel moet worden getekend. 
center_coordinates: Het zijn de middelpuntscoördinaten van de cirkel. De coördinaten worden weergegeven als tupels van twee waarden, namelijk (X coördinaatwaarde, Y coördinaatwaarde). 
straal: Het is de straal van de cirkel. 
kleur: het is de kleur van de grenslijn van de cirkel die moet worden getekend. Voor BGR geven we een tuple door. bijv.: (255, 0, 0) voor blauwe kleur. 
dikte: dit is de dikte van de cirkelgrenslijn in px. Een dikte van -1 px vult de cirkelvorm met de opgegeven kleur.
Retourwaarde: het retourneert een afbeelding. 
 

Hoe teken ik een cirkel over afbeelding OpenCV?

StackOverflow-vraag

Ik gebruik python en opencv om een afbeelding van de webcam te krijgen, en ik wil weet hoe ik een cirkel over mijn afbeelding moet tekenen, gewoon een simpele groene cirkel met transparante vulling

enter afbeelding beschrijving hier

mijn code:

import cv2 import numpy import sys if __name__ == `__main__`: #haal huidig frame van webcam cam = cv2.VideoCapture(0) img = cam.read() #ho w teken een cirkel???? cv2.imshow(`WebCam`, img) cv2.waitKey() 

Bij voorbaat dank.

Antwoord

cv2.circle(img, centrum, straal, kleur, dikte=1, lineType=8, shift=0) ‚Üí Geen Tekent een cirkel. Parameters: img (CvArr) ‚Äì Afbeelding waar de cirkel is als middelpunt (CvPoint) ‚Äì Middelpunt van de cirkel straal ( int) ‚Äì Radius van de cirkelkleur (CvScalar) ‚Äì Cirkelkleurdikte (int) ‚Äì Dikte van de cirkelomtrek indien positief, anders geeft dit aan dat een gevulde cirkel moet worden getekend lineType (int ) ‚Äì Type van de cirkelgrens, zie Regelbeschrijvingsverschuiving (int) ‚Äì Aantal fractionele bits in de middelste coördinaten en straalwaarde 

Gebruik de parameter "thickness" alleen voor de rand.

Voorbeeld #1

def blob(x): """Gegeven een Nx3-matrix van blobposities en -grootte, maak N img_size x img_size afbeeldingen, elk met een blob erop getekend gegeven door de waarde in elke rij van x Een rij van x = [x,y,radius].""" y = np.zeros((x.shape[0], img_size, img_size)) voor i , deeltje in enumerate(x): rr, cc = skimage.draw.circle( particle[0], particle[1], max(particle[2], 1), shape=(img_size, img_size) ) y[i, rr, cc] = 1 return y #%% # namen (dit is voorlopig alleen ter referentie!) 

Voorbeeld #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. hoogte), (100, 255, 255)) cv2.line(self.img, (self.width - 10, 0), (self.width/2 + 5, self.height), (100, 255, 255) ) voor track_number in range(1, 65): if str(track_number)+`_track_range` in radarData: track_range = radarData[str(track_nummer)+`_track_range`] track_angle = (float(radarData[str(track_nummer)+`_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) 

Voorbeeld #3

def ProcessFrame(self, frame): # segment arm region segment = self.SegmentArm(frame) # maak een kopie van de gesegmenteerde afbeelding om op te tekenen draw = cv2.cvtColor(segment, cv2.COLOR_GRAY2RGB) # teken enkele hulpjes voor het correct plaatsen van de 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) # zoek de romp van het gesegmenteerde gebied, en vind op basis daarvan de # convexiteitsdefecten [contouren,defecten] = self.FindHullDefects(segment) # detecteer het aantal vingers afhankelijk van de contouren en convexiteitsdefecten # teken defecten die bij de vingers horen groen, andere rood [nofingers,draw] = zelf.DetectN umberFingers(contouren, defecten, tekenen) # print aantal vingers op afbeelding cv2.putText(draw, str(nofingers), (30,30), cv2.FONT_HERSHEY_SIMPLEX, 1, (255,255,255)) return draw 

Voorbeeld #4

def mark_hand_center(frame_in,cont): max_d=0 pt=(0,0) x,y,w,h = cv2.boundingRect(cont) voor ind_y in xrange(int( y+0.3*h),int(y+0.8*h)): #rond 0.25 tot 0.6 regio van hoogte (snellere berekening met goede resultaten) voor ind_x in xrange(int(x+0.3*w),int(x+ 0.6*w)): #rond 0.3 tot 0.6 regio van breedte (Sneller berekening met goede resultaten) 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. Zoek en toon gebaar 

Voorbeeld #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)) voor 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), zelf .font, 1, (255,255,255), 2) cv2.imshow("Radar", self.img) cv2.waitKey(2) 


Gearchiveerde versie

OpenCV-Python —¬†is een Python-bindingen bibliotheek voor het oplossen van problemen met computervisie.¬†cv2.circle () wordt gebruikt om een cirkel op een afbeelding te tekenen.

Syntaxis: cv2.circle (afbeelding, center_coordinates, straal, kleur , dikte)

Parameters:
afbeelding: Het is de afbeelding waarop de cirkel moet worden getekend.
center_coordinates: Het zijn de middelpuntscoördinaten van de cirkel.¬†De coördinaten worden weergegeven als tupels van twee waarden ie ( X coördinaatwaarde, Y coördinaatwaarde).
straal: Het is de straal van de cirkel.
kleur: Het is de kleur van de grenslijn van de cirkel die moet worden getekend. Voor BGR passen we sa tuple. eg: (255, 0, 0) voor blauwe kleur.
dikte: Het is de dikte van de cirkelgrenslijn in px .¬ †Dikte van -1 px vult de vorm rectangle-method/">rechthoek met de opgegeven kleur.

Retourwaarde: Het retourneert een afbeelding.

De afbeelding wordt gebruikt voor alle onderstaande voorbeelden:

Voorbeeld #1:

# Python-programma om de cv2.circle () methode

uit te leggen

 
# cv2 import

import cv2 

 
# pad

pad = r `C: UsersRajnishDesktoppythonengineeringgeeks.png`

  
# Lees afbeelding in standaardmodus

afbeelding = cv2.imread (pad)

 
# Naam van het venster waarin de afbeelding wordt weergegeven

window_name = `Afbeelding `

  
# Center coördinaten

center_coordinates = ( 120 , 50 )

 
# Cirkelradius

straal = 20

  
# Blauwe kleur in BGR

kleur = ( 255 , 0 , 0 )

 
# Regelbreedte 2 px

dikte = 2

 
# Met behulp van de cv2.circle () methode
# Teken een cirkel met een blauwe rand van 2 px

afbeelding = cv2.circle (afbeelding, center_coordinates, straal, kleur, dikte )

 
# Weergave afbeelding
cv2.imshow ( window_name, image) 

Uitvoer:

Voorbeeld #2:
Gebruik - 1 px dikte om de rectangle-method/">rechthoek met rood te vullen.

# Python-programma om de cv2.circle () methode

 
# cv2 import

import cv2 

 
# pad

pad = r `C: UsersRajnishDesktoppythonengineeringgeeks.png`

 
# Lees afbeelding in standaardmodus

afbeelding = cv2.imread (pad)

 
# Naam van het venster waarin de afbeelding wordt weergegeven

window_name = `Afbeelding`

  
# Center coördinaten

center_c coördinaten = ( 120 , 100 )

¬ †¬†
# Circle radius

radius = 30

  
# Rood in BGR

kleur = ( 0 , 0 , 255 )

 
# Lijndikte -1 px

dikte = - 1

 
# Gebruiken de cv2.circle () methode
# Teken een rode cirkel van -1 px

afbeelding = cv2.circle (afbeelding, center_coordinates, straal, kleur, dikte)

< code class = "undefined spaces">  
# Tonen van een afbeelding
cv2.imshow (window_name, image ) 

 

Uitvoer:

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


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