파이썬 OpenCV 방법 | cv2.circle()

| | | | | | | | | | |

OpenCV-Python은 컴퓨터 비전 문제를 해결하기 위해 설계된 Python 링크 라이브러리입니다. cv2.circle() 메서드는 모든 이미지에 원을 그리는 데 사용됩니다.

구문: cv2.circle(image, center_coordinates, radius, color, thickness)
매개변수: 
이미지: 원이 그려지는 이미지입니다. 
center_coordinates: 원의 중심 좌표입니다. 좌표는 두 값(예: X 좌표 값, Y 좌표 값)의 튜플로 표시됩니다. 
반지름: 원의 반지름. 
색상: 그릴 원의 경계선 색상입니다. BGR의 경우 튜플을 전달합니다. 예: 파란색의 경우 (255, 0, 0). 
두께: 원 테두리 선의 두께(px)입니다. -1픽셀의 두께는 지정된 색상으로 원 모양을 채웁니다.
반환 값: 이미지를 반환합니다. 
 

OpenCV 이미지 위에 원을 그리는 방법은 무엇입니까?

StackOverflow 질문

저는 python과 opencv를 사용하여 웹캠에서 이미지를 가져오고 싶습니다. 내 이미지 위에 원을 그리는 방법을 알고 있습니다. 투명한 채우기가 있는 단순한 녹색 원입니다.

enter 여기에 이미지 설명

내 코드:

가져오기 cv2 가져오기 numpy 가져오기 시스템 if __name__ == `__main__`: #웹캠에서 현재 프레임 가져오기 캠 = cv2.VideoCapture(0) img = cam.read() #호 w 원을 그립니다???? cv2.imshow(`WebCam`, img) cv2.waitKey() 

미리 감사합니다.

답변

cv2.circle(img, 중심, 반경, 색상, 두께=1, lineType=8, shift=0) ‚Üí 없음 원을 그립니다. 매개변수: img(CvArr) ‚Äì 원이 그린 중심(CvPoint)인 이미지 ‚Äì 원 반경의 중심( int) ‚Äì 원 색상의 반경(CvScalar) ‚Äì 원 색상 두께(int) ‚Äì 원 외곽선의 두께 이면 양수이고, 그렇지 않으면 채워진 원이  그려야 함을 나타냅니다. lineType (int ) ‚Äì 원 경계의 유형, 선 설명 이동 참조(int) ‚Äì 중심 좌표  반경 값 
분수 비트 수

테두리에만 "두께" 매개변수를 사용합니다.

예제 #1

def blob(x): """덩어리 위치와 크기의 Nx3 행렬이 주어지면 N img_size x를 만듭니다. img_size 이미지, 각각 x의 각 행에 있는 값에 의해 주어진 blob x의 한 행 = [x,y,radius].""" y = np.zeros((x.shape[0], img_size, img_size)) for i , 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 #%% # 이름 (이것은 잠시 참고용입니다!) 

예제 #2

def update(self, riderData): self .img = np.zeros((self.height, self.width, self.channels), np.uint8) cv2.line(self.img, (10, 0), (self.width/2 - 5, self. 높이), (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): 만약 str(track_number)+`_track_range` in 레이더Data: track_range = riderData[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("레이더", self.img) cv2.waitKey( 2) 

예제 #3

def ProcessFrame(self, frame): # segment arm region segment = self.SegmentArm(frame) # 분할된 이미지를 복사하여 그려서 만듭니다. draw = cv2.cvtColor(segment, cv2.COLOR_GRAY2RGB) # 손을 올바르게 배치하기 위한 도우미 그리기 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) # 선체 찾기 분할된 영역의, 그리고 그것을 기반으로 # convexity defect [contours,defects] = self.FindHullDefects(segment) # 윤곽과 볼록 결함에 따라 손가락의 수를 감지합니다. # 손가락에 속하는 결함을 녹색으로, 나머지는 빨간색으로 그립니다. [nofingers,draw] = self.DetectN umberFingers(contours, defect, draw) # 이미지에 손가락 수 인쇄 cv2.putText(draw, str(nofingers), (30,30), cv2.FONT_HERSHEY_SIMPLEX, 1, (255,255,255)) return draw 

예제 #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)): #ind_x in xrange(int(x+0.3*w),int(x+ 0.6*w)): #폭의 영역이 약 0.3 ~ 0.6입니다(결과가 확인되면 더 빠르게 계산) 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=거짓 반환 frame_in,pt,max_d,thresh_score # 6. 제스처 찾기 및 표시 

예제 #5

def update(self, riderData): 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` 레이더 데이터에서: track_range = 레이더데이터[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("레이더", self.img) cv2.waitKey(2) 


보관된 버전

OpenCV-Python —¬†는 Python 바인딩입니다. 컴퓨터 비전 문제 해결을 위한 라이브러리.¬†cv2.circle () 모든 이미지에 원을 그리는 데 사용됩니다.

구문: cv2.circle(이미지, center_coordinates, 반지름, 색상, 두께)

매개변수:
이미지: 원이 그려지는 이미지입니다.
center_coordinates: 원의 중심 좌표입니다.¬†좌표는 두 값 ‚Äã‚Äãie( X 좌표 값, Y 좌표 값).
반지름: 원의 반지름입니다.
색상: 그릴 원의 경계선 색상입니다. ¬† BGR 의 경우 통과 sa 튜플.¬†예: 파란색의 경우 (255, 0, 0).
두께: 픽셀 단위의 원 테두리 선의 두께입니다.¬ †두께 -1픽셀 은 지정된 크기만큼 rectangle-method/">사각형 모양을 채웁니다. color.

반환 값: 이미지를 반환합니다.

이미지는 아래의 모든 예에 사용됩니다.

예시 #1:

<표 테두리 = "0" cellpadding = "0" cellspacing = "0">

# cv2.circle () 메서드를 설명하는 파이썬 프로그램

 
# cv2 import

import cv2 

 
# 경로

경로 = r `C: UsersRajnishDesktoppythonengineeringgeeks.png`

  
# 기본 모드에서 이미지 읽기

이미지 = cv2.imread (경로)

 
# 이미지가 표시됩니다.

window_name = `이미지 `

  
# 중심 좌표

<코드 클래스 = "일반"> center_coordinates <코드 클래스 = "키워드"> = <코드 클래스 = "일반"> ( <코드 클래스 = "값" > 120 <코드 클래스 = "일반">, <코드 클래스 = "값 "> 50 )

 
# 원 반경

<코드 클래스 = "일반"> 반경 <코드 클래스 = "키워드"> = <코드 클래스 = "값"> 20

  
# BGR의 파란색

색상 <코드 클래스 = "키워드"> = <코드 클래스 = "일반"> ( <코드 클래스 = "값"> 255 < 코드 클래스 = "일반">, <코드 클래스 = "값"> 0 <코드 클래스 = "일반">, <코드 클래스 = "값"> 0 )

 
# 라인 너비 2px

두께 = 2

 
# cv2.circle () 메서드 사용
<코드 클래스 = "주석 s"> # 2픽셀의 파란색 테두리가 있는 원 그리기

이미지 = cv2.circle(이미지, center_coordinates, 반경, 색상, 두께 )

 
# 이미지 표시
cv2.imshow ( window_name, 이미지)¬†

출력:

예제 2:
사용 - rectangle-method/">사각형을 빨간색으로 채우기 위한 1픽셀 두께입니다.

<표 테두리 = "0" cellpadding = "0" cellspacing = "0">

# cv2.circle () 메서드

 
# cv2 가져오기

가져오기 cv2¬†

 
# 경로

경로 = r `C: UsersRajnishDesktoppythonengineeringgeeks.png`

 
# 기본 모드에서 이미지 읽기

이미지 = cv2.imread (경로)

 
# 이미지가 표시되는 창의 이름

window_name = `이미지`

  
# 중심 좌표

center_c 좌표 <코드 클래스 = "키워드" > = <코드 클래스 = "일반"> ( <코드 클래스 = "값"> 120 <코드 클래스 = "일반 ">, <코드 클래스 = " 값 "> 100 <코드 클래스 ="일반 ">)

¬ †¬†
# 원 반경

반경 = 30

  
# BGR의 빨간색

color = <코드 클래스 = "일반"> ( <코드 클래스 = "값 "> 0 <코드 클래스 ="일반 ">, <코드 클래스 ="값 "> 0 <코드 클래스 ="일반 ">, <코드 클래스 = "값"> 255 <코드 클래스 = "일반">)

 
# 선 두께 -1px

두께 = - 1

 
# 사용 cv2.circle () 메서드
# -1px 빨간색 원 그리기

이미지 = cv2.circle (이미지, center_coordinates, 반경, 색상, 두께)

< code class = "undefined space">  
# 이미지 표시
< 코드 클래스 = "일반"> cv2.imshow (window_name, 이미지)¬†

 

출력:

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