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
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:
p>
-1 piksel kullanma rectangle-method/">dikdörtgeni kırmızıyla dolduracak kalınlık.
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ı: