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_mask와 image_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: 검출된 컨투어 목록
앞으로 추가를 더 하도록 하겠다.
'Python' 카테고리의 다른 글
[Python] tensor dimension 맞추기 문법, unsqueeze(0), squeeze, permute() 총정리! (0) | 2025.03.09 |
---|---|
[Python] python 다운그레이드 / 버전 낮추기 (0) | 2024.06.20 |
[Python] 가상환경 명령어 모음 / requirement.txt 리스트 설치 (0) | 2024.06.11 |
[Python] mp4 동영상 프레임 수 추출 하는 code / import cv2 (0) | 2024.06.05 |
[Python] pip install cv2 터미널 opencv 설치 / import cv2 (0) | 2024.06.04 |