본문 바로가기
인공지능 기초 수업/컴퓨터 비전 실습 코드

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 변수에 저장합니다.

 

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.

 

 

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

                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

 

 

https://www.youtube.com/watch?v=9iEPzbG-xLE&t=24s

 

 

 

 

 

 

728x90
반응형

'인공지능 기초 수업 > 컴퓨터 비전 실습 코드' 카테고리의 다른 글

gtts 라이브러리  (0) 2024.10.03
mediapipe pose 모델 활용  (5) 2024.10.01
mediapipe hands 활용  (1) 2023.11.22
cv2.line() 함수로 선 만들기  (2) 2023.11.14
미디어 파이프 핸즈  (2) 2023.11.03