Ch 03. 기본적인 영상 처리 기법 - 01. 영상의 밝기 조절
Ch 03. 기본적인 영상 처리 기법 - 02. 영상의 산술 및 논리 연산
Ch 03. 기본적인 영상 처리 기법 - 03. 컬러 영상 처리와 색 공간
오늘도 어김없이 컴퓨터비전 인강을 들으며 지식을 늘려보았습니다.
이제 개강도 하고 그래서 더 바빠진거 같은데 공부를 빼먹지 않도록 열심히 해야겠네요ㅜ
학생분들 모두 화이팅입니다!
이번에는 영상에서의 산술 및 논리 연산으로 영상이 어떻게 변하고 어떤 특징을 잡아낼 수 있는지 그리고 여러가지 색 공간과 표현법에 대해 배워 보았습니다.
>> 연산 시간 측정 방법
컴퓨터 비전에서는 대용량인 영상 데이터를 다루다 보니 연산 시간을 측정하여 관리할 필요가 있다.
cv2.TickMeter() class를 사용하여 편하게 시간을 측정할 수 있다.
cv2.TickMeter() -> tm
tm.start(): 시간 측정 시작
tm.stop(): 시간 측정 종료
tm.reset(): 시간 측정 초기화
(각 함수에 tm.start, tm.stop 함수를 호출하여 계산해도 전체 시간이 측정되기 때문에 reset을 사용해야함)
tm.getTimeSec(): 측정 시간을 초 단위로 반환
tm.getTimeMilli(): 측정 시간을 초 단위로 반환
tm.getTimeMicro(): 측정 시간을 초 단위로 반환
영상 연산 시간을 측정 했을때 보통 30 fps 정도가 나와야지 느리지 않다고 말할 수 있다.
(fps = Frame Per Second)
더 나온다면 최적화할 방법을 생각해 봐야 한다.
시간을 측정하여 확인해 볼 때는 한번 만 확인하지 말고 여러 번 확인 후 평균 값으로 측정하는 것이 좋다.
간혹 첫번째 실행에 시간이 많이 걸릴 때도 있기 때문이다.
>> 영상의 밝기 조절
각 픽셀 값에 어떤 정수 값을 더하면 밝아지고 빼면 어두워진다.
cv2.add(img, scalar) 함수를 사용하여 밝기 조절이 가능하다.
grayscale 영상일 경우 ex) cv2.add(img, 100)
컬러 영상일 경우 ex) cv2.acc(img, (100, 100, 100, 0))
> 특정 부분 추출
cv2.subtract(src1, src2, dst=None, mask=None, dtype=None) -> dst
src1 – src2로 동작됨
> 두 영상 비교
cv2.absdiff(src1, src2, dst=None) -> dst
영상에서 달라진 점을 찾을 때 사용됨
예를들어 CCTV 영상을 가져와 1시간 전과 후의 영상을 비교할 때 사용할 수 있음
> > 색 공간 변환 함수
cv2.cvtColor(src, code, dst=None, dstCn=None)
code -> cv2.COLOR_BGR2HSV,
cv2.COLOR_BGR2BGR ...
등등 여러 컬러 변환 코드를 제공하고 있다.
> RGB 색을 grayScale로 변환 시
Y = 0.299R + 0.587G + 0.114B 비율로 변환이 된다.
이 수식으로 보아 GBR 순으로 중요도가 높다는 것을 알 수 있다.
gray scale 영상으로 변환 시
장점: 데이터 저장 용량 감소, 데이터 처리 속도 향상
단점: 색상 정보 손실
> HSV 색 공간
hue: 색상, 색의 종류
saturation: 채도, 색의 탁하고 선명한 정도
value: 명도, 빛의 밝기
hsv 색 공간은 어느 특정 색을 검출해 낼때 유용하게 사용된다.
강의 링크: bit.ly/2NTHHz7
'난 이 분야 전문가야! > OpenCV' 카테고리의 다른 글
컴퓨터비전인강 4주차 :: 영상에서 특정 색상 추출 (0) | 2021.03.12 |
---|---|
컴퓨터비전인강 3주차:: 영상에서의 히스토그램 (0) | 2021.03.07 |
컴퓨터비전인강 2주차 :: 키보드, 마우스 이벤트 처리 및 트랙바 생성법 (0) | 2021.02.27 |
컴퓨터비전인강 2주차 :: openCV 웹캠, 비디오 재생 및 저장 (0) | 2021.02.24 |
컴퓨터비전인강 1주차 :: matplotlib 이미지 openCV로 불러오기, 픽셀 참조 (0) | 2021.02.21 |