420 likes | 1.62k Views
멀티미디어 신호처리 이론 및 실습. 강의자료 2 장 -2: 영상 포인터 처리와 히스토그램. 수업목표 및 내용. 영상신호처리 포인터 영상신호처리 – 히스토그램 영상영역처리 – 컨볼루션 마스크 처리 기하학적 영상신호처리 BMP 영상파일구조에 대하여 이해한다 . 임계값 (Threshold) 을 이용하여 영상을 이진화하는 방법에 대하여 알아본다 . 자동으로 경계값을 결정하는 알고리즘들 중 Gonzalez 알고리즘과 Otsu 알고리즘에 대하여 이해한다. 영상 포인터 ( 픽셀 ) 처리.
E N D
멀티미디어 신호처리이론 및 실습 강의자료 2장-2: 영상 포인터 처리와 히스토그램
수업목표 및 내용 • 영상신호처리 • 포인터 영상신호처리 –히스토그램 • 영상영역처리 –컨볼루션 마스크 처리 • 기하학적 영상신호처리 • BMP 영상파일구조에 대하여 이해한다. • 임계값(Threshold)을 이용하여 영상을 이진화하는 방법에 대하여 알아본다. • 자동으로 경계값을 결정하는 알고리즘들 중 Gonzalez 알고리즘과 Otsu 알고리즘에 대하여 이해한다.
영상 포인터(픽셀) 처리 • 포인터 처리(point processing) • 개별 화소를 독립적으로 처리하는 연산 [그림 2-31] 영상신호 포인터 처리의 개념도
영상 포인터(픽셀)처리 - 산술연산 (b) (b) 원본영상+40 (c) 원본영상-40 (a) 원본영상 [그림 2-32] 영상에 상수 값 덧셈과 뺄셈 처리
영상 포인터(픽셀)처리-산술연산 [Table 2-3] 영상처리 후 출력영상 클리핑(clipping) 처리
영상 포인터(픽셀)처리 -산술연산 (a) 원본영상 (b) 원영상 X 1.3 (c) 원영상 / 1.3 [그림 2-33] 영상의 상수 곱 처리
영상 포인터(픽셀)처리 [Lenna 영상의 negative 영상]
빈도수 (frequency) 5 5 4 3 3 4 5 4 4 5 3 2 3 1 3 2 3 1 4 2 1 밝기값 4x4 영상 0 1 2 3 4 5 6 밝기값 히스토그램(histogram) • 영상의 명암값 프로필을 보여주기 위해 사용, 영상의 구성, 즉, 명암대비 및 명암값 분포에 대한 정보를 제공 [그림 2-34] 16 화소(4x4) 영상에 대한 밝기값 히스토그램
히스토그램 (histogram) [동전 영상의 히스토그램(밝기값 분포도)]
히스토그램 (histogram) [그림 2-35] Lenna 영상의 히스토그램(밝기값 분포도)
영상분포도의 치우침 현상 (a) 어두운 영상 (b) 밝은 영상 [그림 2-36] 어두운 영상과 밝은 영상의 밝기값 분포도
히스토그램 계산 void Histogram() { int k=0, sum =0, total_pixels=0; int hist[256]; // Histogram의 빈도수 저장 int sum_of_hist[256]; // 축적 Histogram 저장 for(int z=0 ; z < N ; z++){ // 초기화 작업 hist[z] = 0; sum_of_hist[z] = 0;} for(int i=0; i < N ; i++){ for(int j=0 ; j<N ; j++){ k = InputImage[i][j]; hist[k] = hist[k]+1;} } } }
임계값에 의한 영상이진화 처리 (식 2-7) 임계값(T) = 128 [그림 2-37] 임계값 128을 이용한 Lenna 영상의 이진화: (a) 원본영상; (b) 임계값 128로 이진화된 영상
경계값을 이용한 Lenna 영상의 이진화 void Threshold100() { for(int i=0 ; i<N ; i++){ for(int j=0 ; j<N ; j++){ if(InputImage[i][j]>=Threshold){ // 임계값설정: Threshold=100 ResultImage[i][j] = 255;// 100 이상이면 흰색으로 } else ResultImage[i][j] = 0;//100 이하이면 검정색으로 } } }
임계값 결정(주관적인 판단) [그림 2-39] 두 모드(bimodal) 히스토그램의 시각적 분석에 의한 임계값 결정
히스토그램을 이용한 이진화 (a) 원영상 (b) T가 작을 때 (c ) T가 너무 클 때 (d) 적당한 T
경계값 자동 결정 방법1 (Gonzalez, Woods) • 경계값 T의 초기값을 추정한다. (제안된 추정 값은 영상에서 밝기의 최소값과 최대값 사이의 중간점) • 경계값 T로 이진화(영상분할)한다. 그 결과는 밝기값이 T보다 큰 화소들로 구성된 영역(G1)과 밝기값이 T 보다 작은 화소들로 구성된 영역(G2)의 화소들로 나누어진다 • 영역 G1과 G2에 대하여 화소들의 밝기의 평균값( )을 계산한다. • 연속적으로 다음과 같은 새로운 경계값을 계산한다. • 연속적인 반복에서 경계 값의 변화가 미리 정의된 오차 보다 작을 때까지 단계 2에서 4까지 반복한다.
경계값 자동 결정 방법 2 (Otsu) • 두 클래스간 분산(between-class variance) 를 최대화시키는 최적의 경계값(T)을 선택 • 히스토그램을 기반으로 하고 있으며, 먼저 정규화된 히스토그램을 다음과 같은 이산확률밀도 함수로 정의 (식 2-9) (식 2-10) 여기서, : 각 클래스의 확률 : 각 클래스의 평균 밝기값 : 전체 영상의 평균 밝기값
Otsu 방법과 Gonzalez 방법에 의한 이진화 결과 (a) Gonzalez: 임계값 102 (b) Otsu : 임계값 104 (c) Gonzalez: 임계값 100 (d) Otsu : 임계값 100
OCR에서의 영상이진화 사용 예 (a) 스캔한 문서 (b) 자동 경계값 설정에 의한 이진화 영상(영상분할)
영상이진화 예 (Otsu 방법) (a) 동전영상의 정규화된 히스토그램 (b) Otsu 임계값 자동결정방법에 의한 동전영상 이진화 결과 (임계값 = 100)
영상이진화 예 (Otsu 방법) (b) Otsu 임계값 자동결정방법에 의한 동전영상 이진화 결과 (임계값 = 116) • Lenna 영상의 정규화된 • 히스토그램
히스토그램 평활화 • 영상의 분포도 폭이 작거나 한쪽으로 치우쳐 있을 때, 영상의 분포가 일정하도록 하는 것 [영상의 분포도 평활화 (Histogram Equalization) ]
평활화 H(i) : 입력 영상의 누적 히스토그램h(i) : 정규화합 히스토그램 Gmax : 영상의 최대 밝기 값 Ni : 입력영상내부에 존재하는 픽셀의 개수 • 히스토그램의 형상을 분석하여 밝기 분포가 특정한 부분으로 치우친 것을 좀더 넓은 밝기 영역에 걸쳐 분포가 존재하도록 히스토그램을 펼쳐준 것( 데이터의 양이 바뀌지 않음) • 히스토그램 평활화의 단계 • 원시 입력영상의 밝기값에 대한 히스토그램을 생성 • 생성된 히스토그램을 정규화합 히스토그램으로 변형 • 정규화합 히스토그램을 이용하여 입력영상을 다시 매핑
평활화 H(i) : 입력 영상의 누적 히스토그램h(i) : 정규화합 히스토그램 Gmax : 영상의 최대 밝기 값 Nt : 입력영상내부에 존재하는 픽셀의 개수
스트레칭 스트레칭 영상 원본영상 평활화 영상
스트레칭 vs. 평활화 스트레칭 평활화 스트레칭은 단순히 영상 내 픽셀의 최소, 최대 값을 비율을 이용하여 고정된 비율로 영상을 낮은 밝기와 높은 밝기로 당겨준 것에 불과
개선된 명암대비 스트레칭 단순한 히스토그램 스트레칭은 낮은 값 이거나 높은 값인 픽셀이 존재하면 효과가 떨어짐 이를 해결 하기 위해 사용자가 두 개의 값을 입력하여 0이나 255로 할 비율을 정하는 엔드인 탐색법을 사용
개선된 명암대비 스트레칭 각 끝을 20%로 정한개선된 스트레칭 영상 원본영상 스트레칭 영상
히스토그램 지정 지정영상 변환영상 원입력영상