본문 바로가기
인공지능 기초

math 라이브러리 활용

by SwMaker_Jun 2023. 11. 28.
728x90
반응형

 

1. math 라이브러리 

     파이썬의 math 라이브러리는 수학적인 연산을 수행하는 함수와 상수들을 제공하는 표준 라이브러리 모듈 중 하나

     이 라이브러리를 사용하면 다양한 수학적인 작업을 수행할 수 있다.

 

      가. 수학적 연산 : math 라이브러리는 다양한 수학적 연산을 수행할 수 있도록 다양한 함수를 제공

                                 예를 들어, 삼각함수 (sin, cos, tan), 제곱근 (sqrt), 로그 (log), 지수 (exp), 올림 (ceil), 내림 (floor),

                                 절댓값 (fabs) 등을 계산할 수 있다.

      나.  상수 : math 라이브러리는 몇 가지 유용한 수학적 상수도 제공한다.

                       예를 들어, 파이 (π) 값을 가져오려면 math.pi를 사용할 수 있다.

상수 예제

 

 

 

2. 두점 사이의 거리 or 피타고라스 활용

    가. 두점사이의 거리 

두점사이의 거리  출처 : https://www.youtube.com/watch?v=BKwkVPrVazg

   

         - 수직선에서 A, B 두점사이의 거리

         - 좌표평면에서 A, B 두점사이의 거리

 

 

    나. 피타고라스 정리

         파이썬의 math 라이브러리는 수학적인 연산을 수행하는 함수와 상수들을 제공하는 표준 라이브러리 모듈 중 하나

         이 라이브러리를 사용하면 다양한 수학적인 작업을 수행할 수 있다.

피타고라스 정리 (출처:위키피디아)

 

 

 

3. 파이썬 코드

     가. import math  : 수학 라이브러리 호출    

라이브러리 추가

 

 

     나.   dist = int(math.sqrt((x1좌표 -  x2좌표)**2 + (y1좌표 - y2좌표)**2))

 

            이 코드는 두 점 (x좌표, y좌표)와 (x2좌표,y2좌표)  사이의 유클리드 거리를 계산하는 코드입니다.

            math.sqrt 함수를 사용하여 거리를 계산하고, 계산된 거리를 정수로 변환하여 dist 변수에 저장합니다.

 

cv2.line() 함수를 활용하여 선을 표시

 

 

       다. 손가락 거리를 백분위로 계산하여 출력하기 위한 변수를 선언

                f1_x = int(hand_landmarks.landmark[4].x * 100 )
                f1_y = int(hand_landmarks.landmark[4].y * 100 )
                f2_x = int(hand_landmarks.landmark[8].x * 100 )
                f2_y = int(hand_landmarks.landmark[8].y * 100 )

 

               ※ dist = int(math.sqrt((x1좌표 -  x2좌표)**2 + (y1좌표 - y2좌표)**2))  

                   거리를 계산하여 출력해보자.

 

       라. puttext() 함수 활용하기.

       https://swmakerjun.tistory.com/48

 

컴퓨터 비전 cv2.putText 활용 하여 label과 score 글씨 출력하기.

1. cv2.putText() 함수 cv2.putText() 함수는 OpenCV 라이브러리에서 제공하는 이미지에 텍스트를 추가하는 함수입니다. 이미지 및 웹캠에서 불러온 창에 원하는 텍스트를 삽입하여 시각적인 표시나 설명

swmakerjun.tistory.com

 

 

       마. 손가락 랜드마크 정점 위치

                line1_x = int(hand_landmarks.landmark[4].x * frame.shape[1])
                line1_y = int(hand_landmarks.landmark[4].y * frame.shape[0])
                line2_x = int(hand_landmarks.landmark[8].x * frame.shape[1])
                line2_y = int(hand_landmarks.landmark[8].y * frame.shape[0])

 

 

      바. line()  함수 활용하여 선 만들기.

        https://swmakerjun.tistory.com/56

 

cv2.line() 함수로 선 만들기

1. cv2.line( ) 함수 활용하기. cv2.line(선을 그릴 이미지, 선의 시작 좌표, 선의 끝 좌표, 선의 색상 (b,g,r) , 선굵기 ) # 이미지의 중간에 세로로 흰색 줄을 그립니다. height, width, _ = frame.shape middle_x = widt

swmakerjun.tistory.com

 

 

 

728x90
반응형