devskim blog
Search
🔲

이진화, 객체 단위 분석

sections
Tags
C++
OpenCV
Created
Apr 27, 2023 04:09 AM
Last Updated
Jul 30, 2023 09:49 AM
 
 
 

이진화개념

 

개념

  • 영상의 픽셀 값을 0 또는 255로 만드는 연산
  • 배경과 객체, 관심영역(ROI)와 비관심 영역으로 나누는 작업
  • 방법
    • 임계값 연산을 이용
      • 예시 이미지
        • notion image
      • threshold
        • THRESH_BINARY
          • notion image
        • THRESH_BINARY_INV
          • notion image
        • THRESH_OTSU
          • 입력 영상이 배경과 객체 두 개로 구성되어 있다고 가정하고, 임의의 임계값 에 의해 나눠지는 두 픽셀 분포 그룹의 분산이 최소가 되는 선택
          • THRESH_BINARY | THRESH_OTSU 와 같이 활용
       
 

지역 이진화

  • 전역 이진화가 불균일한 조명 환경에 취약하다는 문제점
  • 픽셀 또는 영역마다 다른 임계값을 사용하여 이진화를 수행하는 기법
예시 이미지
예시 이미지
전역 이진화
전역 이진화
지역 이진화
지역 이진화
  • adaptiveThreshold
    • OpenCV 적응형 이진화 함수
입력 영상
입력 영상
 
threshold
threshold
adaptiveThreshold
adaptiveThreshold
 

모폴로지 연산(morphology)

  • 영상을 행태학적인 측면에서 다루는 기법
  • 구조 요소 모폴로지 연산의 결과를 결정하는 커널, 마스크
    • getStructuringElement
  • 예시 이미지
    • notion image
  • 침식 연산
    • 구조 요소가 객체 영역 내부에 완전히 포함될 경우 고정적 픽셀을 255로 설정
    • 흰색의 객체 영역이 점점 줄어들고, 객체 내부의 홀(hole)이 커짐
    • erode
      • notion image
  • 팽창 연산
    • 구조 요소와 객체 영역이 한 픽셀이라도 만날 경우 고정점 픽셀을 255로 설정
    • 흰색의 객체 영역이 점점 불어나고, 객체 내부의 홀(hole)이 채워짐
    • dilate
      • notion image
  • 열기 연산
    • 침식 → 팽창
    • 작은 객체는 사라지고, 얇은 연결선이 끊어짐
입력 영상
입력 영상
지역 이진화 (OTSU)
지역 이진화 (OTSU)
열기연산
열기연산
  • 닫기 연산
    • 팽창 → 닫기
    • 작은 홀은 사라지고, 얇은 연결선이 두꺼워짐
  • morphologyEx
    • MORPH_OPEN
      • notion image
    • MORPH_CLOSE
      • notion image
 
 
 

객체 단위 분석

  • 흰색의 객체를 분할하여 객체 위치 및 크기 정보, ROI 추출, 모양 분석 등 특징을 분석
 

레이블링

  • 동일 객체에 속한 모든 픽셀에 고유한 번호를 매기는 작업
  • 입력은 이진 영상, 출력은 2차원 정수 행렬 형태의 레이블맵
  • 픽셀의 연결 관계
    • 4-이웃 연결 관계
    • 8-이웃 연결 관계
  • 메소드
    • connectedComponents
    • connectedComponentsWithStats
      • notion image
        notion image
  • 예시
notion image
notion image
 
 

외곽선 검출

  • 객체의 외곽선 좌표를 모두 추출하는 작업
  • 메소드
    • findContours 외곽선 검출 함수
      • RETR_LIST
        • notion image
      • RETR_CCOMP
        • notion image
      • RETR_TREE
        • notion image
      • hierarchy 생략
        • notion image
    • drawContours 외곽선 그리기 함수
입력 영상
입력 영상
이진화
이진화
외곽선 검출
외곽선 검출
 

외곽선 함수

  • archLength 외곽선 길이 구하기
  • contourArea 면적 구하기
  • boundingRect 바운딩 박스 구하기
  • minEnclosingCircle 바운딩 서클 구하기
  • approxPolyDP 외곽선 근사화
  • isContourConvex 컨벡스 검사
notion image
 
 
PREV템플릿 매칭
NEXT에지검출, 허프변환, 코너검출