24
12장 컬러 영상 처리 트루컬러 비트맵 다루기 다양한 색 모델 색상 평면 나누기와 합치기 컬러 영상 처리

영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

  • Upload
    dotram

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

12장 컬러 영상 처리

트루컬러 비트맵 다루기

다양한 색 모델

색상 평면 나누기와 합치기

컬러 영상 처리

Page 2: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 2 -

12.1. 트루컬러비트맵다루기

트루컬러 비트맵(Truecolor bitmap) 하나의 픽셀이 R, G, B 세 개의 색상 성분의 조합으로

표현되는 비트맵

2563 = 16,777,216 가지의 색상을 표현

Page 3: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 3 -

12.1. 트루컬러비트맵다루기

CDib 클래스에서 컬러 픽셀 참조 방법 RGBBYTE 클래스 사용

K

KM MRGBBYTE** ptr = m_Dib.GetRGBPtr();

ptr[0][0].r

ptr[0][0].g

ptr[0][0].b

ptr[h-1][0].r

ptr[h-1][0].g

ptr[h-1][0].b

ptr[h-1][w-1].r

ptr[h-1][w-1].g

ptr[h-1][w-1].b

ptr[0][w-1].r

ptr[0][w-1].g

ptr[0][w-1].b

ptr[0][1].r

ptr[0][1].g

ptr[0][1].b

Page 4: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 4 -

12.1. 트루컬러비트맵다루기

트루컬러 영상의 반전

RGBBYTE** ptr = m_Dib.GetRGBPtr();

for( j = 0 ; j < h ; j++ )for( i = 0 ; i < w ; i++ ){

ptr[j][i].r = 255 - ptr[j][i].r;ptr[j][i].g = 255 - ptr[j][i].b;ptr[j][i].b = 255 - ptr[j][i].g;

}

Page 5: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 5 -

12.1. 트루컬러비트맵다루기

트루컬러 영상을 그레이스케일 영상으로 변환

0.299 0.587 0.114Y R G B

Page 6: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 6 -

12.2. 다양한색모델

색(color) 사람의 눈에 있는 원추 세포가 빛의 파장에 따라 다르게

반응하여 인지하는 것

가시 광선의 파장: 400~700nm

Page 7: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 7 -

12.2. 다양한색모델

색상 표현 방법 모든 색상은 세 개의 주된 색상(primary color)의 조합

으로 표현된다. (T. Young)

1 2 3C aC bC cC 445nm 535nm 570nm445nm 535nm 570nm

Page 8: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 8 -

12.2. 다양한색모델

RGB 색 모델 빨간색(Red)

녹색(Green)

파란색(Blue)

Red

(255, 0, 0)R

G

B

Green

(0, 255, 0)

Blue (0, 0, 255)

Magenta

(255, 0, 255)

Cyan

(0, 255, 255)

White

(255, 255, 255)

Black

(0, 0, 0)

Gra

ysca

le

Yellow

(255, 255, 0)

Red

(255, 0, 0)R

G

B

Green

(0, 255, 0)

Blue (0, 0, 255)

Magenta

(255, 0, 255)

Cyan

(0, 255, 255)

White

(255, 255, 255)

Black

(0, 0, 0)

Gra

ysca

le

Yellow

(255, 255, 0)

Page 9: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 9 -

12.2. 다양한색모델

빛의 삼원색 (RGB)

가산 혼합 모델(Additive color model)

색의 삼원색 (CMY)

감산 혼합 모델(Subtractive color model)

Page 10: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 10 -

12.2. 다양한색모델

CMY(K) 색 모델 청록색(Cyan)

자홍색(Magenta)

노란색(Yellow)

Red

(255

, 0, 0

)R

G

B

Green

(0, 2

55

, 0)

Blu

e (0, 0

, 25

5)

Mag

enta

(255

, 0, 2

55)

Cyan

(0, 2

55

, 255)

White

(255

, 25

5, 2

55)

Black

(0, 0

, 0)

Grayscale

Yello

w

(255

, 25

5, 0

)

Red

(255

, 0, 0

)R

G

B

Green

(0, 2

55

, 0)

Blu

e (0, 0

, 25

5)

Mag

enta

(255

, 0, 2

55)

Cyan

(0, 2

55

, 255)

White

(255

, 25

5, 2

55)

Black

(0, 0

, 0)

Grayscale

Yello

w

(255

, 25

5, 0

)

Cyan (255,0,0)

Magenta (0,255,0)

Yellow (0,0,255)

Page 11: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 11 -

12.2. 다양한색모델

HSI 색 모델 색상(Hue)

채도(Saturation)

명도(Intensity)

Red

Black

White

0I

1I

IH

SCyan

Blue Magenta

Green Yellow

Red

Black

White

0I

1I

IH

SCyan

Blue Magenta

Green Yellow

Page 12: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 12 -

12.2. 다양한색모델

RGB HSI HSI RGB

if

360 if

B GH

B G

1

2

1 ( ) ( )cos

2 ( ) ( )( )

R G R B

R G R B G B

3

1 min , ,S R G BR G B

1

3I R G B

(1 )B I S

cos1

cos(60 )

S HR I

H

3G I R B

Page 13: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 13 -

12.2. 다양한색모델

YUV 색 모델 PAL, SECAM 등의 컬러 비디오 표준에 사용되는 색 모델

영상의 그레이스케일 정보와 색상 정보를 따로 분리하여부호화(encoding)

Y : 밝기 정보(luma)

U, V : 색상 정보(chroma)

Y’=0.299R’+0.587G’+0.114B’

U=B’-Y’

V=R’-Y’

'

'

'

114.0587.0701.0

886.0587.0299.0

144.0587.0299.0'

B

G

R

V

U

Y

Page 14: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 14 -

12.2. 다양한색모델

RGB YUV

결과 값 범위 조절

YUV RGB

결과 값 범위 조절

0.299 0.587 0.114

0.147 0.289 0.436

0.492( )

0.615 0.515 0.100

0.877( )

Y R G B

U R G B

B Y

V R G B

R Y

1.140

0.395 0.581

2.032

R Y V

G Y U V

B Y U

0.299 0.587 0.114

0.169 0.331 0.500 128

0.500 0.419 0.081 128

Y R G B

U R G B

V R G B

1.4075*( 128)

0.3455*( 128) 0.7169*( 128)

1.7790*( 128)

R Y V

G Y U V

B Y U

Page 15: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 15 -

12.2. 다양한색모델

YIQ 색 모델 NTSC 의 컬러 비디오 표준에 사용되는 색 모델

영상의 그레이스케일 정보와 색상 정보를 따로 분리하여부호화(encoding)

YUV 의 UV 를 33도 회전시킨 모델

Y : 밝기 정보(luma)

I, Q : 색상 정보(chroma)

'

'

'

311878.0523083.0211205.0

321746.0274133.0595879.0

144.0587.0299.0'

33cos)''(492111.033sin)''(877283.0

33sin)''(492111.033cos)''(877283.0

B

G

R

Q

I

Y

YBYRQ

YBYRI

Page 16: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 16 -

12.2. 다양한색모델

YCbCr 색 모델 Studio Quality Component Video 를 위한 표준 모델

MPEG, H.26x 계열의 비디오 코딩 포준 칼라모델

YUV 의 변형

5.0

5.0

0

'

'

'

081312.0418688.05.0

5.0331264.0168736.0

144.0587.0299.0'

5.0)402.1/)''((

5.0)772.1/)''((

B

G

R

C

C

Y

YRC

YBC

r

b

r

b

Page 17: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 17 -

12.3. 색상평면나누기와합치기

RGB 색상 평면으로 나누기

Page 18: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 18 -

12.3. 색상평면나누기와합치기

HSI 색상 평면으로 나누기

Page 19: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 19 -

12.3. 색상평면나누기와합치기

YUV 색상 평면으로 나누기

Page 20: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 20 -

12.3. 색상평면나누기와합치기

RGB 색상 평면 합치기

Page 21: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 21 -

12.4. 컬러영상처리

컬러 경계선 검출

1/ 2

2 2 2

Y Y U U V VD w E w E w E

트루컬러영상

Y

U

V

경계선검출

EY

EU

EV

유클리디언거리

컬러 경계선검출

Yw

Uw

Vw

경계선검출

경계선검출

Page 22: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 22 -

12.4. 컬러영상처리

컬러 경계선 검출 결과

그레이스케일정보만으로경계선 검출

YUV 색 모델을이용한 컬러경계선 검출

Page 23: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 23 -

12.4. 컬러영상처리

컬러 히스토그램 균등화 밝기 성분에만 히스토그램 균등화를 수행

모든 색상 성분에 히스토그램 균등화를 수행하면 색감이 크게 변함

입력트루컬러영상

Y

U

V

히스토그램균등화

YE

U

V

출력트루컬러영상

Page 24: 영상 처리 프로그래밍 By Visual C++mbm.konkuk.ac.kr/wp-content/uploads/2018/04/디지털... · 2018-04-26 · 한빛미디어 영상처리프로그래밍By Visual C++ - 2

한빛미디어 영상 처리 프로그래밍 By Visual C++ - 24 -

12.4. 컬러영상처리

컬러 히스토그램 균등화 결과 차례대로 입력 영상, RGB 색 성분 모두에서 히스토그

램 균등화를 수행한 결과, 밝기 성분에서만 히스토그램균등화를 수행한 결과

원본 영상에 비하여색감이 크게 달라짐