영상의 화소처리(point processing)
- 입력 영상의 픽셀 값 → 출력 영상의 필셀 값으로 설정하는 연산
saturate_cast
- 밝기(brightness)
- 반전(inverse)
- 명암비(contrast)
히스토그램(histogram)
- 히스토그램
calcHist
- 영상의 픽셀값 분포를 그래프 형태로 표현한 것
- 정규화된 히스토그램 (normalized histogram)
- 히스토그램으로 구한 각 픽셀의 개수를 영상 전체 픽셀 개수로 나눈 것
- 예시
히스토그램 스트레칭(histogram stretching)
- 영상의 히스토그램이 그레이스케일 전 구간에서 걸쳐 나타나도록 변경하는 선형 변환 기법
- 예시
minMaxLoc
히스토그램 평활화(histogram equalization)
- 히스토그램이 그레이스케일 전체 구간에서 균일한 분포로 나타나도록 변경하는 명암비 향상 기법 (균등화, 균일화, 평탄화)
- 예시
equalizeHist
산술 연산
- 예시 이미지
- 덧셈 연산
add
- 가중치 합
addWeighted
- 가중치를 이 되도록 설정 → 두 입력 영상의 평균 밝기를 유지
- 평균 연산
- 가중치를 로 설정한 가중치 합
- 잡음 제거로 활용
- 뺄셈 연산
substract
- 차이 연산
absdiff
- 논리 연산
bitwise_and
bitwise_or
bitwise_xor
bitwise_not
영상의 필터링
- 영상에서 필요한 정보만 통과시키고 원치 않는 정보는 걸러내는 작업
- 종류
- 주파수 공간에서의 필터링 (frequency domain filtering)
- 푸리에 변환을 이용하여 영상을 주파수 공간으로 변환하여 필터링을 수행하는 방법
- 공간적 필터링 (spatial domain filtering)
filter2D
- 영상의 픽셀 값(대상 좌표의 픽셀값과 주변 값 동시 사용)을 직접 이용하는 필터링 방법
- 마스크 연산에 이용 (커널과 유사)
Convolution
VSCross-correlation
- 주파수 공간에서의 필터링 (frequency domain filtering)
블러링(blurring)
- 평균 값 필터에 의한 블러링
blur
- 마스크의 크기가 커질 수록 연산량이 많아지나, 필터 결과가 더욱 부드러워짐
- 마스크 크기가 커질 수록 현재 위치의 픽셀 값 비중은 줄어들고, 상대적으로 멀리 떨어져 있는 픽셀의 영향이 커지는 단점이 있음
- 가우시안 필터링(정규 분포)
GaussianBlur
샤프닝 (sharpening)
- 언샤프 마스크 필터링 (unsharp mask filtering)
- 날카롭지 않은 블러링된 영상을 이용하여 날카로운 영상을 생성
- 평균 값 필터를 사용한 언샤프 마스크 필터링
blur
Mat blr; blur(src, blr, Size(3, 3)); Mat dst = 2 * src - blr;
- 가우시안 필터를 사용한 언샤프 마스크 필터링
GaussianBlur
Mat blr; GaussianBlur(srcf, blr, Size(), sigma); float alpha = 1.0f; Mat dst = (1.f + alpha) * srcf - alpha * blr;
잡음 제거
잡음(noise)
영상의 픽셀 값에 추가되는 원치 않는 형태의 신호
- 가우시안 잡음 생성 (정상분포 난수 발생)
randn
- 프로파일을 이용한 잡음 분석
프로파일
영상에서 특정 경로 상에 있는 픽셀의 밝기 값을 그래프 형태로 나타낸 것
- Line Profile, Intensity Profile
- 양방향 필터(bilateral filter)
bilateralFilter
- 에지 보전 잡음 제거 필터
- 기준 픽셀과 이웃 픽셀과의 거리, 그리고 픽셀 값의 차이를 함께 고려하여 블러링 정도를 조절
영상의 기하학적 변환
- 영상을 구성하는 픽셀의 배치 구조를 변경함으로써 전체 영상의 모양을 바꾸는 작업
이동 변환(transition transform)
- 가로 또는 세로 방향으로 영상을 특정 크기만큼 이동 변환
전단 변환(shear transform)
- 직사각형 형태의 영상을 한쪽 방향으로 밀어서 평행사변형 모양으로 변형되는 변환
크기 변환(scale transform)
- 영상의 크기를 원본 영상보다 크게 또는 작게 만드는 변환
순방향 매핑
영상 확대 시 빈 공간이 발생
역방향 매핑
- 보간법
resize
- 실수 좌표 상에서의 픽셀 값을 결정하기 위해 주변 픽셀 값을 이용하여 값 추정 방법
- 종류
최근방 이웃 보간법
가장 가까운 위치에 있는 픽셀의 값을 참조하는 방법
양성형 보간법
실수 좌표를 둘러싸고 있는 네개의 픽셀 값에 가중치를 곱한 값들의 선형 합으로 결과 영상의 픽셀 값을 구하는 방법
3차 보간법
실수 좌표를 둘러싸고 있는 16개 픽셀 값에 3차 함수를 이용한 가중치를 부여하여 결과 영상 픽셀 값을 계산
스플라인 보간법
란쵸스 보간법
최근방 이웃 보간법
양성형 보간법
3차 보간법
란쵸스 보간법
회전 변환(rotation transform)
- 크기 변환과 유사하게 역방향 매핑으로 구현해야 빈 픽셀 미발생
- 보간법 선택 가능
- 메소드
getRotationMatrix2D
warpAffine
동차 좌표계
- 차원의 좌표를 1차원 증가시켜 표현하는 방법
- 동차 좌표계를 사용하면, 이동, 크기, 회전 변환의 조합을 2X3 행렬로 표현 가능
대칭 변환(flip, reflection)
- 영상의 상하 대칭, 좌우 대칭, 원점 대칭
flip
어파인 변환(affine transform)
getAffineTransform
어파인 변환 행렬 구하기
warpAffine
영상의 어파인 변환
투시 변환(perspective transform)
getPerspectiveTransform
투시 변환 행렬 구하기
warpPerspective
영상의 투시 변환
- 버드아이뷰(bird’s-eye view)
- 새가 하늘에서 내려다보듯이, 매우 높은 곳에 위치한 카메라가 아래의 피사체를 찍은 화면
리매핑(remapping)
- 영상의 특정 위치 픽셀을 다른 위치에 재배치하는 일반적인 프로세스
- 다양한 변환을 리매핑으로 표현 가능
remap