Python OpenCV | cv2.circle () yöntemi

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

OpenCV-Python, bilgisayarla görme sorunlarını çözmek için tasarlanmış bir Python bağlantı kitaplığıdır. cv2.circle () yöntemi, herhangi bir görüntünün üzerine bir daire çizmek için kullanılır.

Sözdizimi: cv2.circle(image, center_coordinates, yarıçap, renk, kalınlık)
Parametreler: 
görüntü: Üzerine dairenin çizileceği görüntüdür. 
merkez_koordinatları: güçlü> Çemberin merkez koordinatlarıdır. Koordinatlar, iki değerin demetleri olarak temsil edilir, yani (X koordinat değeri, Y koordinat değeri). 
yarıçap: dairenin yarıçapı. 
renk: Çizilecek dairenin kenar çizgisinin rengidir. BGR için bir tanımlama grubu iletiyoruz. örneğin: (255, 0, 0) mavi renk için. 
kalınlık: px cinsinden daire kenar çizgisinin kalınlığıdır. -1 piksel kalınlık, daire şeklini belirtilen renkle doldurur.
Dönüş Değeri: Bir resim döndürür. 
 

OpenCV resminin üzerine nasıl daire çizilir?

StackOverflow sorusu

Web kamerasından bir görüntü elde etmek için python ve opencv kullanıyorum ve resmimin üzerine nasıl bir daire çizeceğimi bilmek istiyorum, sadece şeffaf olan basit bir yeşil daire doldurun

görüntü açıklamasını buraya girin

kodum:

p>

içe aktar cv2 import numpy import sys if __name__ == `__main__`: #web kamerasından geçerli kareyi al cam = cv2. VideoCapture(0) img = cam.read() #nasıl daire çizilir????  cv2.imshow(`WebCam`, img) cv2.waitKey() 

Şimdiden teşekkürler.

Yanıt

cv2.circle(img, merkez, yarıçap, renk, kalınlık= 1, lineType=8, shift=0) ‚Üí Yok Bir daire çizer. Parametreler: img (CvArr) ‚Äì Dairenin merkeze çizildiği resim (CvPoint) ‚Äì Daire yarıçapının merkezi ( int) ‚Äì Daire renginin yarıçapı (CvScalar) ‚Äì Daire rengi kalınlığı (int) ‚Äì Daire anahattının kalınlığı eğer pozitifse, aksi takdirde bu, içi dolu bir dairenin çizileceğini gösterir lineType (int ) ‚Äì Daire sınırının Türü, bkz. Satır açıklaması kaydırması (int) ‚Äì Merkez koordinatlarındaki  kesir bitlerinin sayısı ve yarıçap değerindeki 

Yalnızca kenarlık için "kalınlık" parametresini kullanın.

Örnek #1

def blob(x): """Blob konumları ve boyutundan oluşan bir Nx3 matrisi verildiğinde, N img_size x oluşturun img_size resimler, her biri bir x`in her satırındaki değer tarafından verilen blob Bir satır x = [x,y,radius].""" y = np.zeros((x.shape[0], img_size, img_size)) for i , enumerate(x) içindeki parçacık: rr, cc = skimage.draw.circle( parçacık[0], parçacık[1], max(parçacık[2], 1), şekil=(img_size, img_size) ) y[i, rr, cc] = 1 dönüş y #%% # isim (bu sadece şu an için referans içindir!) 

Örnek #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. yükseklik), (100, 255, 255)) cv2.line(self.img, (self.width - 10, 0), (self.width/2 + 5, self.height), (100, 255, 255) ) range(1, 65) içindeki track_number için: 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) 

Örnek #3

def ProcessFrame(self, frame): # segment arm bölge segment = self.SegmentArm(frame) # üzerinde çizim yapmak için segmentlere ayrılmış görüntünün bir kopyasını yapın çiz = cv2.cvtColor(segment, cv2. COLOR_GRAY2RGB) # eli doğru yerleştirmek için bazı yardımcılar çizin 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) # parçalı alanın gövdesini bulun ve bu bulguya göre # dışbükeylik kusurları [konturlar, kusurlar] = self.HullDefects(segment) # konturlara ve dışbükeylik kusurlarına bağlı olarak parmak sayısını algılar # parmaklara ait çizim kusurları yeşil, diğerleri kırmızı [nofingers,draw] = self.DetectNumberFingers( konturlar, kusurlar, çizim) # resimdeki parmak sayısını yazdır cv2.putText(draw, str(nofinger), (30,30), cv2. FONT_HERSHEY_SIMPLEX, 1, (255,255,255)) dönüş çizimi 

Örnek #4

def mark_hand_center(frame_in,cont): max_d=0 pt=(0,0) x,y,w,h = cv2.boundingRect(cont) ind_y için xrange(int(y+) 0.3*h),int(y+0.8*h)): xrange(int(x+0.3*w),int(x+0) içinde ind_x için yaklaşık 0,25 ila 0,6 yükseklik bölgesi (tamam sonuçlarıyla daha hızlı hesaplama) .6*w)): #yaklaşık 0,3 ila 0,6 genişlik bölgesi (Tamam sonuçlarıyla daha hızlı hesaplama) 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=Yanlış return frame_in,pt,max_d,thresh_score # 6. Hareketi bul ve göster 

Örnek #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)) aralıktaki iz_numarası için (1, 65) ): if str(track_number)+`_track_range` radarData`da: track_range = radarData[str(track_number)+`_track_range`] track_angle = (float(radarData[str(track_number)+`_track_angle`])+90.0*matematik. 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 (iz_numarası), # (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) 


Arşivlenen sürüm

OpenCV-Python —¬†bir Python bağlamasıdır bilgisayarla görme sorunlarını çözmek için kitaplık.¬†cv2.circle () herhangi bir görüntünün üzerine daire çizmek için kullanılır.

Sözdizimi: cv2.circle (resim, merkez_koordinatları, yarıçap, renk , kalınlık)

Parametreler:
görüntü: Çemberin üzerine çizileceği resimdir.
merkez_koordinatları: Çemberin merkez koordinatlarıdır. > X koordinat değeri, Y koordinat değeri).
yarıçap: Çemberin yarıçapıdır.
renk: Çizilecek dairenin sınır çizgisinin rengidir ¬† BGR için, biz p ass a tuple.¬†eg: (255, 0, 0) mavi renk için.
kalınlık: px cinsinden daire kenar çizgisinin kalınlığıdır. ¬† -1 piksel kalınlığı, rectangle-method/">rectangle şeklini belirtilen renk.

Dönüş Değeri: Bir resim döndürür.

Resim aşağıdaki tüm örnekler için kullanılmıştır:

Örnek 1:

cv2.circle () yöntemini açıklamak için # Python programı

 
# cv2 içe aktarma

içe aktarma cv2¬†

 
# path

yol = r `C: UsersRajnishDesktoppythoneeringgeeks.png`

  
# Resmi varsayılan modda oku

image = cv2.imread (yol)

 
# Resmin görüntülendiği pencerenin adı

window_name = `Image`

  
# Merkez koordinatları

center_coordinates = ( 120 , 50 )

 
# Daire yarıçapı

yarıçap = 20

  
# BGR`de mavi renk

color = ( 255 , 0 , 0 )

 
# Çizgi genişliği 2 piksel

kalınlık = 2

 
# cv2.circle () yöntemi

# 2 piksellik mavi kenarlıklı bir daire çizin

image = cv2.circle (resim, merkez_koordinatları, yarıçap, renk, kalınlık)

 
# Resmi göster
cv2.imshow (window_name, image) 

Çıktı:

Örnek # 2:
-1 piksel kullanma rectangle-method/">dikdörtgeni kırmızıyla dolduracak kalınlık.

p>

cv2.circle () yöntemini açıklamak için # Python programı

 
# cv2 import

import cv2 

 
# path

path = r `C: UsersRajnishDesktoppythonengineeringgeeks.png`

 
# Resmi varsayılan modda oku

resim = cv2.imread (yol)

 
# Resmin görüntülendiği pencerenin adı

window_name = `Resim`

  
# Merkez koordinatlar

merkez_koordinatlar = < kod sınıfı = "düz"> ( 120 , 100 )

  
# Daire yarıçapı

yarıçap = 30

¬†¬†< br> # BGR`de Kırmızı

color = ( 0 , 0 , 255 )

¬ †
# Çizgi kalınlığı -1 piksel

kalınlık = - 1

 
# cv2.circle () yöntemi
# Bir -1 çizin px kırmızı daire

resim = cv2.circle (resim, merkez_koordinatları, yarıçap, renk, kalınlık)

<¬†kod sınıfı = "tanımsız boşluklar">¬†¬†
# Bir resmin gösterilmesi
cv2.imshow (window_name, image ) 

 

Çıktı: