히스토그램

Download Report

Transcript 히스토그램

3장. 히스토그램 분석과 영상개선
교재 내용
 3.1 히스토그램(Histogram)
 3.2 히스토그램 평활화(Histogram
Equalization)
 3.3 히스토그램 명세화(Histogram
Specfication)
 3.4 그레이레벨 변경(Gray-level
Modification)
 3.5 임계치 (Threshold)
2
3.1 히스토그램[1]
 히스토그램의 특성
 히스토그램은 영상의 명암대비와 명암값 분포에
관한 정보를 제공
 영상이 밝으면 히스토그램은 오른쪽으로 이동
 영상이 어두워지면 히스토그램은 왼쪽으로 이동
 히스토그램은 화소 곱셈 연산에 의해 팽창됨.
 히스토그램은 화소 나눗셈 연산에 의해 수축됨.
 영상의 전처리 과정에 사용
3
히스토그램(2)
 히스토그램(histogram)이란 영상 내 특정 밝기값을 갖는
화소의 발생빈도수를 나타내는 집합이다
 영상의 히스토그램은 영상의 내부정보를 해석하거나 영
상의 시각적 질(quality)을 높여주는 영상개선분야에 중
요한 역할을 한다.
 예를 들어 512 * 512 크기의 gray 영상에 있어 전체 화
소의 갯수(nt)= 262,144이고, 특정 밝기값 Gi 의 갯수가
ni 라면, 히스토그램 Hi 는?
 Hi = ni / nt for i= 0 to M-1 (M=256)
4
히스토그램(3)
 히스토그램의 전체 합은
 누적 확률분포(cumulative histogram)
5
히스토그램[4]
 영상의 화소가 가진 명암값에 대한 막대
그래프
6
6
히스토그램(5)
 입력영상에 따른 다양한 히스토그램 분포 예
제
7
히스토그램[6]
 밝기 조절 결과
 원 영상의 히스토그램과 비교하여 단지 20만큼
이동
원 영상
+ 20 영상
8
히스토그램[7]
 명암대비 조절 결과
 분포 자체의 이동은 없으나 분포의 형태 변화
원 영상
*1. 2 곱한 영상
9
히스토그램(8)
[그림 3.1] 새영상의 밝기값 히스토그램과 누적확률 분포도
10
3.2 히스토그램의 평활화[1]
 히스토그램 평활화
 정의
 한쪽으로 치우친 명암 분포를 가진 히스토그램의 명
암값 분포를 재분배 과정을 거쳐, 일정한(균일한) 분포
를 가지도록 근사화
 결과
 히스토그램 평활화는 어두운 영상은 밝게, 너무 밝은
영상은 조금 어둡게 하는 등의 적당한 명암값을 유지
 주의 및 유사 알고리즘 예
 질이 높은 영상에 적용 시 상대적으로 질이 낮을 수 있
다.
 Adaptive histogram equalization (AHE)
11
히스토그램 평활화[2]
 영상 내 균일하지 않게 분포되어 있는 영상의 밝
기값을 균일하게 재 분포시켜 영상의 시각적 질
(quality)을 향상시켜준다.
 히스토그램 평활화 단계
1. 원 영상의 히스토그램을 구한 후 히스토그램의 누적
합을 계산한다.
2. 히스토그램의 누적 합을 전체 화소의 개수로 나누어
값을 정규화 시킨다.
3. 정규화된 값에 밝기값의 최대값을 곱하여 새로운 값
을 획득하고, 입력영상을 출력영상으로 변환시킨다.
12
히스토그램 평활화[3]
 [예제 3-1] 4 bit/pixel로 구성된 영상 I 는 200개의 화소
로 구성되었으며 밝기값의 분포는 H와 같다. 이 영상에
대하여 히스토그램 평활화 실행하여 새로운 영상 결과를
구하시오.
 H =[0,0,20,30,5,5,40,40,30,20,10,0,0,0,0,0]
 Page 65의 도표 참조.
원영상의 히스토그램
평활화 영상의 히스토그램
13
히스토그램의 평활화[4]
 히스토그램 평활화 과정 1
 히스토그램 생성
6
14
히스토그램의 평활화[5]
 히스토그램 평활화 과정 2
 히스토그램의 값을 정규화하여 누적합 계산
5
6
최대 명암값 : 7
전체 화소수 : 16
15
히스토그램의 평활화[6]
 히스토그램 평활화 과정 3
 입력영상의 화소 위치를 파악, 결과 영상 생성
6
2
4
2
2
4
4
4
2
7
4
7
7
2
7
4
7
5
4
3
2
1
0
1
평활화한 영상의 명암값
2
3
4
5
6
7
평활화한 히스토그램
16
히스토그램의 평활화[7]
 평활화한 명암도 영상
원영상
평활화한 영상
평활화 히스토그램
17
히스토그램 평활화[8]
 영상 평활화 예제
평활화 전
평활화 후
18
히스토그램 평활화[9]

평활화 전
평활화 후
19
3.3 히스토그램 명세화(1)
 히스토그램 명세화(혹은 히스토그램 매칭)는 원하는 영
상의 바람직한 히스토그램으로 명세화하여 영상의 명암
대비를 증대 시켜주는 기능을 수행한다.
 영상을 밝게 하거나 어둡게 하는 경우, 명암
대비가 높은 영상이 필요한 경우
 명세화 과정
1. 입력 영상의 히스토그램을 평활화 한다
2. 평활화된 영상에 대해 역히스토그램 평활
화를 수행한다
20
히스토그램 명세화(2)
Original Image
& Histogram
원하는 Histogram
Result Image
& Histogram
21
히스토그램 명세화(3)
22
히스토그램 명세화(4)
합
평
역
0
0
0
0
1
0
0
0
2
0
0
5
3
0
0
5
4
0
0
6
5
6
2.6
6
6
11
4.8
7
7
16
7.0
7
23
히스토그램 명세화(5)
24
 [예제 3-2] 3bit/pixel로 구
성된 영상 I 의 밝기값 분포가
다음과 같다. 사용자가 지정하
는 히스토그램에 대하여 히스
토그램 명세화를 실행하시오.
normalized sum
히스토그램 명세화(6)
8
6
4
2
0
0
1
2
 Page 70-71참조
3
4
5
6
7
5
6
7
pixel intensity
inverse value
inversed
frequency
8
6
4
2
0
0
1
2
3
4
pixel intensity
25
3.4 그레이 레벨변경[1]
 영상의 밝기정도를 의미하는 그레이 레벨 값을 선형
(linear) 혹은 비선형(nonlinear) 함수에 의하여 새로운 값
으로 변환시켜주는 작업
 g(x,y)= T[f(x,y)]

T(변환함수), g(x,y)(변환된 영상의 화소값), f(x,y) (원 영상의
특정 화소값)
 선형함수: g= c*f +b (c: 영상의 대비값 조절, b: 밝기값
조절)
26
그레이 레벨변경[2]
 선형변환에 의한 맵핑
입력영상
g=2f
g=f+32
맵핑 영상
G=f-32
27
그레이 레벨변경[3]
명암 변환
 Intensity transformation
 미리 지정된 함수 f(x)를 어떻게 정의하
느냐에 따라 영상의 질이 달라짐.
 명암 변환 함수 Y = f(x)
 X : 처리 전, Y : 처리 후의 화소값
28
그레이 레벨변경[4]
널 변환(null transformation)
•f(x)=x 아무 변환이 없어 원 영상과 같은 영상 획득.
널 변환 결과
29
그레이 레벨변경[5]
역 변환(inverse transformation)
•f(x)=255-x : 명암 최대값에서 기존 화소값을 반전시켜, 역 영상 획득.
•음화 영상(negative image, negated image)
역 변환 결과
30
그레이 레벨변경[6]
감마 상관 관계 변환(gamma correlation transformation)
 감마 조절(Gamma correction)
 출력 영상의 밝기 정도를 전반적으로 조절하는 것.
 너무 밝거나 너무 어두워 모니터 출력으로 보기 어려울 때.
 영상을 정확하게 재생하려면 감마 조절 지식 필요.
 Gamma : 모니터의 밝기와 인가한 전압 사이의 비선형적인 관
계에서 모니터의 특성과 관련 있는 상수 계수인  (gamma) 에
서 유래.
 모니터의 공통 사항 : 모니터에 출력되는 밝기인 명암도와 인가
한 전압 사이의 관계가 지수함수의 비선형적인 형태를 가지고
있음.
 명암도 – 전압 응답 곡선(intensity to voltage response
curve) : 약 2.5 지수 함수(power function) 특성(그림 참조).
31
그레이 레벨변경[7]
 출력 밝기 L  V 2.5
 컴퓨터 모니터에 x 크기의 명암도를 가지는 pixel 을 입력시
킨다면 실제로 그 픽셀은 x 2.5 와 같은 명암도로 변환되어
모니터에 출력.
 원하는 값보다 실제로 낮은 밝기값 으로 모니터에 출력됨.

x(전압) = 0.5 이면,
나타남.
0.52.5  0.177
에서, 0.177로 모니터에
32
그레이 레벨변경[8]
 이 문제 해결하기 위해 모니터는 입력 시그널(전압 V) 의 감
마가 조절되어야 함.
 입력 시그널인 전압 (V) 과 출력 밝기값(L)과의 상관 관계를
알고 있기 때문에 해결 가능.
 모니터에 출력 되기 전에 입력 시그널과 관련된 입력 밝기값
을 조절(correction).
 출력이 입력을 어느 정도 선형적으로 반영하도록 만듬.
(이러한 과정이 감마 조절)
33
그레이 레벨변경[9]
 모니터에서는 밝은 이미지로 보임에도 불구하고,
인쇄를 하면 어두워지는 경우, 감마 값 조절 필수.
 감마 상관 관계 변환 함수 f ( x)  pow( x,1 /  )
f ( x)  255.0 * pow( x / 255.0,1 /  )
 명암도 영상에 적용
 감마  이 1.0 - null 변환
 감마  이 1.0 초과 – 대수 함수와 비슷한 분포
로 영상을 밝게 하는 곡선 형태감마  이 0.0 ~
1.0 미만 - 역 로그 함수로 분포 영상 어둡게 함.
34
그레이 레벨변경[10]
원 영상
r=0.7 을 적용한 영상
r=1.7 을 적용한 영상
명암도 영상에서의 감마 상관 관계 변환(0.7/1.7)
•감마  이 1.0 이하이면 어둡고, 1.0 이상이면 밝다.
•RGB 컬러 성분에 각각 적용하면 f ( x)  255.0 * pow( R / 255.0,1 / R )
f ( x)  255.0 * pow(G / 255.0,1 / Rg )
f ( x)  255.0 * pow( B / 255.0,1 / Rb )
35
그레이 레벨변경[11]
자동 스케일링(auto-scaling)/히스토그램 스트레칭
 선형변환의 대표적인 형태.
 영상내 모든 밝기값을 영상시스템에서 사용하는 밝
기값의 최소와 최대치로 변환시켜주어 영상내 발기
값을 사용되는 시스템의 동적범위에 맞게 조절.
 0-255단계의 밝기값을 지닌 시스템의 경우
 g= 255/(fmax-fmin) *(f-fmin)
 영상내 최소,최대 밝기값을 찾아내고, 위 함수를 적용하
여 영상의 최소치는 0, 최대치는 255변환시킨다.
36
그레이 레벨변경[12]
낮은 명암 대비
 너무 어둡거나 밝은 영상
 Histogram 이 한쪽으로 치우쳐 있음
 균등한 분포로 만드는 algorithm : Histogram
stretching
 명암대비 확장 or contrast stretching
 Histogram equalization VS. Histogram
stretching
 Histogram equalization : 빈약한 histogram 분포를 가
진 영상
 문질러서 번지게 한 효과
 Histogram stretching : 한쪽이나 중앙으로 치우친
histogram 을 가진 영상을 개선.
 잡아 늘린 효과.
37
그레이 레벨변경[13]
X-low
255 * (X –low ) / (high –low)
•Histogram 의 값이 0인 부분
을 찾아야 함.
•0~255 값을 고르게 분포 해
야 하므로 0~1의 값을 가지
게 함.
•기존 명암 값 : X
•최대값 : high
•최소값 : low
히스토그램 스트레칭의 개념 •새로운 명암 값 =
255 * (X –low ) / (high –low)
38
그레이 레벨변경[14]
- 계산 예 -
•새로운 명암 값 =
255 * (X –low ) / (high –low)
•예)
•If X=30
then 255 * (30-30)/(200-30) = 0
이 부분이 0
30
200 •If X=200
히스토그램, high, low 정의
then 255 * (200-30)/(200-30) = 255
이 부분이 1
•실제 30~200 까지의 명암도를
0~255까지의 명암도로 contrast
stretching.
39
그레이 레벨변경[15]
 0~255까지 고른 분포를 가진 Histogram 인 경우
 명암대비 stretching 을 여러 번 적용해도 달라지지 않음
 high-low= 255 이기 때문 분모와 255를 나누면 1이 되어 원
래 명도 값 유지
 Contrast stretching method 요약.
 기존 명암도 영상에서 최저값 찾음.
 기존 명암도 영상에서 최고값 찾음.
 명암대비 stretching 공식 적용
40
그레이 레벨변경[16]
41
그레이 레벨변경[17]
- 변형 ends-in search
엔드인 탐색에서
low, high 지정
•Low , High 범위 값을 지정
하여 명암대비 stretching
•Histogram 의 특정 부분에
화소들이 치우친 영상을 보
정하는데 유용.
42
그레이 레벨변경[18]
엔드인 탐색 수행 결과
평활화 영상
•Histogram Equalization 과 histogram stretching 은 서로 독립적인 관계가
아니라 상호 보완적인 관계
•Histogram stretching 적용 후 histogram equalization 과정을 적용해도 무리
없음.
43
그레이 레벨변경[19]
 자동 스케일링에 의한 영상변환
입력영상
입력영상의 히스토그램
보정된 영상
보정된 영상의 히스토그램
44
그레이 레벨변경[20]
 자동 스케일링에의한 영상 맵핑
보정전의 영상
보정후의 영상
45
그레이 레벨변경[21]
 그레이 레벨의 맵핑시 반드시 선형 함수만을 사용할 필요
는 없으며, 입력영상에서 출력영상으로 일대 일 혹은 다
대 일의 사상이 가능한 어떠한 형태의 함수(singlevalued function) 사용이 가능하다.
 이러한 측면에서 비선형 함수의 사용이 가능하며 일반적
으로 [그림 3.6]에 제시된 바와 같은 로그함수
(logarithmic function) 이다.
지수함수
선형함수
로그함수
46
그레이 레벨변경[22]
로그함수에 의한 영상 개선
지수함수에 의한 영상 개선
47
3.4.2 그레이 레벨 슬라이싱
 영상의 특정부분을 강조해서 표현하는 방법
 G=T(f)= 255
= 0
A,B구간을 강조
if a<f<b
otherwise
이진영상
48
3.4.3 비트플랜 슬라이싱[1]
 비트플랜 슬라이싱(bit plane slicing)은 전체영상의 외형
을 결정할 때 특정 비트플랜의 기여도를 강조하는 방법
이다.
 이 방법의 전재 조건은 영상 화소는 8 비트 화소로 구성
되며, 영상은 8개의 1비트 플랜(plane)으로 구성되어 있
다고 가정한다.
49
비트플랜 슬라이싱[2]
 영상은 8개의 비트 플랜 가운데 상위 순위(high order) 4
개 비트플랜은 영상의 구성에 있어 시각적으로 중요
한 정보를 포함하는 반면 4개의 하위 순위(low order) 4
개 비트플랜은 영상의 미세한 부분에 대한 정보를 지닌다,
 일반적으로 0 비트는 가장 덜 중요한 정보를 지닌 반면 7
비트는 가장 중요한 정보를 지닌 비트이다.
 하위 순위의 비트 플랜을 제거하더라도 유용한 정보의 상
실이 없이 상위비트플랜을 이용하여 영상을 보존 할수 있
는 방법을 비트 플랜 슬라이싱 이라고 부르며, 영상의 압
축 또는 점진적 영상 전송방법(progressive image
transmission)으로 사용되기도 한다.
50
비트플랜 슬라이싱[3]
원 영상
4 bit 만 추출한 영상
5 bit 만 추출한 영상
원 영상
6 bit 만 추출한 영상
7 bit 만 추출한 영상
2 레벨 명암도 영상
51
비트플랜 슬라이싱[4]
 명암도 범위가 256 level 이면 처리시간이 부담이 될 때.
 레벨을 낮춰 2 level, 4 level, 8 level, 16 level로 줄이는
방법.
 16만 컬러 영상을 256 컬러 영상으로 변환 가능.
 2 level 명암도 영상 변환의 예
 각 화소값은 unsigned char type 으로서 8 bit 임.
 전체 영상은 8개의 bit plane으로 구성.
 각 비트의 1과 0을 해당 bit plane 의 2 level 명암도
영상으로 고려.
 입력 영상 화소값의 특정 bit plane 선택 후, 화소값에
비트별 AND 연산.
52
비트플랜 슬라이싱[5]
2 level 명암도 영상
 0  0 , 1  255
4 level 명암도 영상 (255/3 = 85)
 00  0 , 01  85, 10  170, 11 255
8 level 명암도 영상 (255/7 = 36.4)
 000  0 , 001  36, 010  72, …..,
111 255
16 level 명암도 영상 (255/15 = 17)
 0000  0 , 0001 17, 0010  34, … ,
1111 255
53
비트플랜 슬라이싱[6]
•4 level 명암도 영상 변환 P/G 수행 결과 보기
원 영상
4 레벨 명암도 영상
4 레벨 명암도 영상
54
비트플랜 슬라이싱[7]
•16 level 명암도 영상 변환 P/G 수행 결과 보기
16 레벨 명암도 영상
원 영상
16 레벨 명암도 영상
55
비트플랜 슬라이싱[8]
 8개의 bit 중 6,7 bit 만 추출하여 2 bit로 4 level 명암도 영상.
 8개의 bit 중 4~7 bit 까지만 추출하여 4 bit로 16 level 명암도 영상.
 8bit 중 상위 bit를 사용하고 하위 bit 를 무시하여 이미지의 손실을 최소
화.
 처리 속도가 빠른 영상 처리 system 응용에 적합.
 등명암 윤곽화(iso-intensity contour) : 특정한 명암값
을 다른 명암값으로 지정 변환하여, 영상 내 특정 영역
에서 존재하는 윤곽선(contour) 찾기.
 포스터라이징(posterizing) : 화소가 가질 수 있는 값의 범위
를 축소.
 솔라라이징(solarizing) : 임계값을 이용한 변환, 다른 화
소를 원 상태로 유지하되 일정 범위의 화소를 강조하는
범위 강조 변환, 햇빛 노출 효과 가짐.
56
비트플랜 슬라이싱[9]
 비트플랜 영상
8비트 원영상
1번째 플랜영상
0+1
0+1+2
0+1+2+3
57
3.5 임계치 (1)
 임계치(T)를 이용하여 영상분할
 영 상 내 의 물 체 (object) 는 흰 색 으 로 동 시 에 배 경
(background)은 검정색으로 표현하는 것이 대표적인 경
우이다.
 이 경우 히스토그램은 [그림 3.11]의 경우와 같이 바이모
달 (bimodal) 형태로 나타난다.
58
임계치 (2)
영상내 배경과 물체의 히스토그램
Bright
object
Dark
background
20
20
10
10
0
0
0
100
200
0
100
200
59
임계치 (3)
 임계치에의한 이진영상의 생성
 임계치 설정방법
 T=mean[I(x,y)]+alpha *STD[I(x,y)]
10000
T
9000
8000
7000
6000
5000
4000
3000
2000
1000
0
0
50
100
150
200
250
60
임계치 (4)
 히스토그램이 이중모달 (bimodal) 이 아닌 다중모달
(multimodal)인 경우 [그림 3.13]와 같이 영상 분할의 오
류를 발생시킬 수 있다.
I(x,y)
T
2000
1800
1600
1400
1200
1000
800
600
400
200
0
0
50
100
150
200
250
 부분영역에 대한 임계치 설정
 T=mean[IR(x,y)]+alpha *STD[IR(x,y)]
61
임계치 (5)
 임계치에 의한 이진영상 생성 에제
62
임계치 (6)
 임계치에의한 지문 영상과 Lena 영상의 분할
결과
63