JH721 SW자율차 [OpenCV] //8주차-1

JH·2021년 5월 31일
0

자율 자동차 SW 개발

목록 보기
14/37

영상처리 개요🐱‍👓

책 : OpenCV-Python으로 배우는 영상 처리 및 응용(저자 : 정성환, 배종욱)
화소는 영상의 구성요소이다.

저 수준 영상처리 : 결과가 영상으로 나옴
고 수준 영상처리 : 특성을 나타내는 영상 처리

영상처리 : 입력 영상을 퍼리하여 출력으로 처리된 영상 획득
컴퓨터 비전 : 입력은 영상, 출력은 어떤 정보 /얼굴인식, 지문 인식, 번호판
컴퓨터 그래픽스 : 입역이 어떤 서술, 출력이 영상 /CAD프로그램 -> 애니메이션 처럼 없는 것을 만드는 것

양자화 : 제한된 비트수로 화소값을 나타내려 값을 정수화 시키는 과정(바이트 단위)
샘플링 : 무한한 연속된 일정한 해상도에 따라 유한개의 화소수만큼 입력 값을 취하는 과정(해상도)(p.27 사진 참조)(화소 값은 2차원의 배열로 나옴)
디지털 : 이산(불연속) /아날로그 : 연속
1024x1024 사진을 8비트화 하면 1024=1k 이므로 1k* 1k=1Mb의 값이 나옴


OpenCV와 파이썬

OpenCV : Open Source Computer Visual Library

np.uint8 : 한 원소가 갖는 8비트 값
image.fill(0) : 검정색 /(255) : 흰색

~3장까지 배웠던 내용이기 때문에 빠르게 패스


OpenCV 인터페이스 및 I/O처리🐱‍🐉

책 p.92 -> OpenCV의 기본적인 인터페이스

그리기

image.fill(255) 와 image[:] = 255 같음

이벤트 : 프로그램에 의해 감지되고 처리될 수 있는 동작이나 사건
이벤트를 처리하기 위해 주로 콜백(call back) 함수 사용

키 이벤트 제어(책 p.97)
마우스 이벤트 제어(책 p.99)
def setMouseCallback(windowName, onMouse, param=None)
windowname : 윈도우 이름 확인
onMouse : 콜백 함수 이름 (꼭 맞춰야됨)
param : 추가적인 사용자 정의

트랙바(슬라이드바)(책 p.102)
cv2.createTrackbar(trackbarname, winname, value count, onChange)
트랙바는 많이 달 수 있기 때문에 이름 윈도우 이름 값 외에도 트랙바이름을 받음
value : 윈도우 내에 트랙바 위치 / : 초기 값인 듯

OpenCV에서 는 bgr
글자에서는 왼쪽 밑이 시작 좌표임 ※주의※

원그리기
원그리기 윈도우 센터 잡기
center = (image.shape[1]//2, image.shape[0]//2) -> 행,열

영상파일 처리👀

읽기
cv2.imread(file경로와이름, [flags])

저장

cv2.imwrite(file경로와이름, 저장할 객체)
imwrite_JPEG_QUALITY -> 높을 수록 좋음
imwrite_PNG_COMPRESSION -> 값이 높으면 압축을 많이 함

비디오 처리
cv2.VideoCapture() -> VideoCapture Object
cv2.VideoCapture(filename) -> 동영상 파일에서 가져옴
cv2.VideoCapture(device) -> pccam에서 가져옴
그 외에 추가적인 함수 및 옵션(책 p.131)
cv2.imwrite("images/test." + str(fram_cnt) + ".jpg", frame) -> 동영상 돌아갈 때 프레임마다 찍어서 저장
if frame_cnt % 10 ==0:
cv2.imwrite("images/test." + str(fram_cnt) + ".jpg", frame)

이렇게 하면 10프레임 마다 저장함

Matplotlib

데이터를 차트난 그래프로 그려주는 라이브러리

기본 함수들(책 p.145)
(※주의※)OpenCV는 bgr 이지만 matplotlib는 rgb입니다.(※주의※)

profile
JH.velog

0개의 댓글