devskim blog
Search

영상의 화소, 연산, 필터링, 변환

sections
Tags
C++
OpenCV
Created
Apr 25, 2023 01:58 PM
Last Updated
Jul 30, 2023 09:49 AM
 
 
 
 

영상의 화소처리(point processing)

  • 입력 영상의 픽셀 값 → 출력 영상의 필셀 값으로 설정하는 연산 saturate_cast
  • 밝기(brightness)
 
 
notion image
  • 반전(inverse)
 
 
notion image
  • 명암비(contrast)
notion image
 
 

히스토그램(histogram)

  • 히스토그램 calcHist
    • 영상의 픽셀값 분포를 그래프 형태로 표현한 것
  • 정규화된 히스토그램 (normalized histogram)
    • 히스토그램으로 구한 각 픽셀의 개수를 영상 전체 픽셀 개수로 나눈 것
  • 예시
    • notion image
      notion image
 

히스토그램 스트레칭(histogram stretching)

  • 영상의 히스토그램이 그레이스케일 전 구간에서 걸쳐 나타나도록 변경하는 선형 변환 기법
  • 예시 minMaxLoc
    • notion image
      notion image
 

히스토그램 평활화(histogram equalization)

  • 히스토그램이 그레이스케일 전체 구간에서 균일한 분포로 나타나도록 변경하는 명암비 향상 기법 (균등화, 균일화, 평탄화)
  • 예시 equalizeHist
    • notion image
      notion image
 
 
 

산술 연산

  • 예시 이미지
notion image
notion image
  • 덧셈 연산 add
 
 
notion image
  • 가중치 합 addWeighted
    • 가중치를 이 되도록 설정 → 두 입력 영상의 평균 밝기를 유지
 
 
notion image
  • 평균 연산
    • 가중치를 로 설정한 가중치 합
    • 잡음 제거로 활용
  • 뺄셈 연산 substract
 
 
notion image
  • 차이 연산 absdiff
 
 
notion image
 
  • 논리 연산
notion image
notion image
notion image
notion image
bitwise_and
bitwise_or
bitwise_xor
bitwise_not
 

영상의 필터링

  • 영상에서 필요한 정보만 통과시키고 원치 않는 정보는 걸러내는 작업
  • 종류
    • 주파수 공간에서의 필터링 (frequency domain filtering)
      • 푸리에 변환을 이용하여 영상을 주파수 공간으로 변환하여 필터링을 수행하는 방법
    • 공간적 필터링 (spatial domain filtering) filter2D
      • 영상의 픽셀 값(대상 좌표의 픽셀값과 주변 값 동시 사용)을 직접 이용하는 필터링 방법
      • 마스크 연산에 이용 (커널과 유사)
      • Convolution VS Cross-correlation
 

블러링(blurring)

  • 평균 값 필터에 의한 블러링 blur
  • 마스크의 크기가 커질 수록 연산량이 많아지나, 필터 결과가 더욱 부드러워짐
  • 마스크 크기가 커질 수록 현재 위치의 픽셀 값 비중은 줄어들고, 상대적으로 멀리 떨어져 있는 픽셀의 영향이 커지는 단점이 있음
  • 가우시안 필터링(정규 분포) GaussianBlur
평균 값 필터에 의한 블러링
평균 값 필터에 의한 블러링
가우시안 필터링
가우시안 필터링
 

샤프닝 (sharpening)

  • 언샤프 마스크 필터링 (unsharp mask filtering)
  • 날카롭지 않은 블러링된 영상을 이용하여 날카로운 영상을 생성
  • 평균 값 필터를 사용한 언샤프 마스크 필터링 blur
    • 코드를 불러오는 중 입니다 ...
  • 가우시안 필터를 사용한 언샤프 마스크 필터링 GaussianBlur
    • 코드를 불러오는 중 입니다 ...
평균 값 필터링 사용한 언샤프 마스크
평균 값 필터링 사용한 언샤프 마스크
가우시안 필터 사용한 언샤프 마스크
가우시안 필터 사용한 언샤프 마스크
 

잡음 제거

  • 잡음(noise) 영상의 픽셀 값에 추가되는 원치 않는 형태의 신호
  • 가우시안 잡음 생성 (정상분포 난수 발생) randn
  • 프로파일을 이용한 잡음 분석
    • 프로파일 영상에서 특정 경로 상에 있는 픽셀의 밝기 값을 그래프 형태로 나타낸 것
    • Line Profile, Intensity Profile
  • 양방향 필터(bilateral filter) bilateralFilter
    • 에지 보전 잡음 제거 필터
    • 기준 픽셀과 이웃 픽셀과의 거리, 그리고 픽셀 값의 차이를 함께 고려하여 블러링 정도를 조절
가우시안 필터 사용 잡음 제거
가우시안 필터 사용 잡음 제거
양방향 필터 사용 잡음 제거
양방향 필터 사용 잡음 제거
 
 

영상의 기하학적 변환

  • 영상을 구성하는 픽셀의 배치 구조를 변경함으로써 전체 영상의 모양을 바꾸는 작업
 

이동 변환(transition transform)

  • 가로 또는 세로 방향으로 영상을 특정 크기만큼 이동 변환
notion image
 

전단 변환(shear transform)

  • 직사각형 형태의 영상을 한쪽 방향으로 밀어서 평행사변형 모양으로 변형되는 변환
notion image
 

크기 변환(scale transform)

  • 영상의 크기를 원본 영상보다 크게 또는 작게 만드는 변환
  • 순방향 매핑 영상 확대 시 빈 공간이 발생
    • notion image
  • 역방향 매핑
    • notion image
  • 보간법 resize
    • 실수 좌표 상에서의 픽셀 값을 결정하기 위해 주변 픽셀 값을 이용하여 값 추정 방법
    • 종류
      • 최근방 이웃 보간법 가장 가까운 위치에 있는 픽셀의 값을 참조하는 방법
      • 양성형 보간법 실수 좌표를 둘러싸고 있는 네개의 픽셀 값에 가중치를 곱한 값들의 선형 합으로 결과 영상의 픽셀 값을 구하는 방법
        • notion image
      • 3차 보간법 실수 좌표를 둘러싸고 있는 16개 픽셀 값에 3차 함수를 이용한 가중치를 부여하여 결과 영상 픽셀 값을 계산
      • 스플라인 보간법
      • 란쵸스 보간법
notion image
notion image
notion image
notion image
최근방 이웃 보간법
양성형 보간법
3차 보간법
란쵸스 보간법
 

회전 변환(rotation transform)

  • 크기 변환과 유사하게 역방향 매핑으로 구현해야 빈 픽셀 미발생
  • 보간법 선택 가능
  • 메소드
    • getRotationMatrix2D
      • notion image
    • warpAffine
 

동차 좌표계

  • 차원의 좌표를 1차원 증가시켜 표현하는 방법
  • 동차 좌표계를 사용하면, 이동, 크기, 회전 변환의 조합을 2X3 행렬로 표현 가능
 

대칭 변환(flip, reflection)

  • 영상의 상하 대칭, 좌우 대칭, 원점 대칭 flip
 

어파인 변환(affine transform)

  • getAffineTransform 어파인 변환 행렬 구하기
  • warpAffine 영상의 어파인 변환
 

투시 변환(perspective transform)

  • getPerspectiveTransform 투시 변환 행렬 구하기
  • warpPerspective 영상의 투시 변환
  • 버드아이뷰(bird’s-eye view)
    • 새가 하늘에서 내려다보듯이, 매우 높은 곳에 위치한 카메라가 아래의 피사체를 찍은 화면
    • notion image
 
 

리매핑(remapping)

  • 영상의 특정 위치 픽셀을 다른 위치에 재배치하는 일반적인 프로세스
  • 다양한 변환을 리매핑으로 표현 가능
  • remap
    • notion image
 
 
 
PREVOpenCV의 컬러영상