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