관리 메뉴

ComputerVision Jack

[영상처리 - 영상 분할] 본문

Image Processing/C++ opencv Lib

[영상처리 - 영상 분할]

JackYoon 2020. 1. 29. 13:57
반응형

영상 분할(Image segmentation)

영상의 이진화(Binarization)

영상의 픽셀 값을 0 또는 255로 만드는 연산

비관심 영역과 관심영역을 구분 짓는 지표가 된다.

영상 이진화

T는 0과 255로 나누기 위한 임계값

 

반복적 방법을 통하여 이진화 임계값을 결정한다.

  • 영상 로딩
  • 정규 히스토그램 계산
  • 임계값 계산
  • 임계값 적용
  • 결과 출력

반복적 이진화

임계값을 계속 수정해 나아가면서 적절한 T(임계값)값을 찾는다.

threshold 연산 수행

[코드]

binmask.at(y, x) = (image.at(y, x) < thresh) ? 0 : 255;

#영상을 돌면서 thresh값에 대하여 이진화를 시킨다.

 

void Histogram(Mat img, float histo[GRAYSCALE])

Mat ThresholdIterative(Mat image, int* thresh)

#반복 Threshold경우 Histogram함수를 이용하여 적절한 임계값을 찾은 후에 적용한다.

 

레이블링 기법

등가 테이블(equivalent table)을 만들면서 영상을 두번 스캔 함으로써 레이블링을 수행

첫 번째 스캔 : 레이블을 전파 시키면서 등가 테이블을 만든다.

두 번째 스캔 : 등가 테이블을 참조하여 픽셀에 고유 레이블 부여

레이블링 기법 적용

  • 영상로딩
  • 첫 번째 스캔 - 레이블링
  • 두 번째 스캔 - 등가 테이블 처리
  • 결과 출력

외각선 추적(Contour tracing)

객체의 외각선을 따라 이동하는 기법

객체의 경계선 추적(boundary tracing)이라고도 함

8방향성 외각선 추적
외각선 추적 방향 알고리즘
ex_boundary_tracking.cpp
0.00MB
ex_labeling.cpp
0.01MB
ex_Threshold.cpp
0.00MB

반응형
Comments