Python

[Python] opencv cv2 function 함수 모음집 / import cv2

도도걸만단 2024. 6. 7. 17:22
반응형

opencv function에 대해 알아보자.

install cv2 설치 터미널 명령어

는 다른 게시물에 방법을 적어놨다.

간단히 말하자면 pip install cv2는 안먹힌다! 다음 링크 참고.

https://minsunstudio.tistory.com/13


cv2.GaussianBlur

이 함수는 이미지를 블러 처리하여 노이즈를 줄이기 위한 목적

Gaussian 블러는 가우시안 분포를 이용한 블러 필터를 적용하여 이미지의 고주파 성분(노이즈)을 제거하고, 저주파 성분(배경 및 주요 특징)을 부드럽게 함

cv_img = cv2.GaussianBlur(cv_img, (7, 7), 0)

(7, 7)은 커널의 크기(너비와 높이)를 의미, 0은 가우시안 커널의 표준 편차.

이 블러링은 이미지의 세부 사항을 제거하고, 노이즈를 줄여 후속 이미지 처리 작업(예: 엣지 검출, 마스크 생성)이 더 정확하게 이루어지도록 함.


cv2.inRange

이미지에서 특정 색상 범위에 해당하는 픽셀을 찾아 이진 마스크를 생성하는 데 사용.

주로 색상 분할(color segmentation) 작업

image_mask = cv2.inRange(cv_hsv, self.left_lower, self.left_upper)
image_mask2 = cv2.inRange(cv_hsv, self.right_lower, self.right_upper)

cv_hsv는 BGR 이미지에서 HSV 색 공간으로 변환된 이미지  

(*cv 사용 시 RGB보다 BGR 순서가 많으니 조심!)

 

self.left_lower, self.left_upper, self.right_lower, self.right_upper는 각각 색상의 하한 및 상한 값

cv2.inRange 함수는 해당 범위 내의 픽셀을 흰색(255)으로, 범위 밖의 픽셀을 검은색(0)으로 설정한 이진 마스크를 생성

이진 마스크는 이미지에서 특정 색상 영역을 추출하거나 다른 색상 기반 이미지 처리를 수행하는 데 유용


cv2.cvtColor

이미지의 색상 공간을 변환하는 데 사용, 여기에선 BGR에서 HSV로 변환

cv_hsv = cv2.cvtColor(cv_img, cv2.COLOR_BGR2HSV)

self.cap.read

비디오 파일 또는 카메라 스트림에서 프레임을 읽어옴

ret, cv_img = self.cap.read()
  • ret: 프레임을 성공적으로 읽어왔는지 여부를 나타내는 불리언 값
  • cv_img: 읽어온 프레임 (이미지)
  •  

cv2.add

두 이미지를 픽셀 단위로 더하는 함수

image_mask_final = cv2.add(image_mask, image_mask2)
  • image_maskimage_mask2: 두 개의 이진 마스크 이미지
  • image_mask_final: 두 마스크를 합친 결과 이미지

cv2.findContours

이진 이미지에서 컨투어(윤곽선)를 검출하는 함수

cnts = cv2.findContours(image_mask_final, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)[-2]

image_mask_final: 입력 이진 이미지

  • cv2.RETR_TREE: 컨투어의 계층 구조를 검출하는 모드
  • cv2.CHAIN_APPROX_SIMPLE: 컨투어를 압축하여 저장하는 방법
  • cnts: 검출된 컨투어 목록

 

앞으로 추가를 더 하도록 하겠다.

반응형