1. 영상처리 기본 1) 영상처리의 개념 (1) 영상처리의 예 sharpening Image segmentation Noise filtering special effect(Sepia tone effect (2) 영상처리 기술 Image Transforms Image Transmissions Image Enhancement Image Restoration Image Compression Image Segmentation Representation and Description Recognition and Interpretation 1) 영상처리의 응용 분야 의료 영상처리 : 신경망 활용 문자인식 영상 검색 : 영상처리 기술들의 집약체 컴퓨터 비전 : 인간의 눈으로 확인할 수 없는 제품 결함 판단 인터넷에 기반한 스트리밍 기술 영상 압축 기술 : MPEG 영상 처리 관련 SW 개발 생물학/군사학 디스플레이 2. 컬러 공간 분석 1) Image Basics (1) Pexels rectangular triangular hexagonal (2) N-connected neighbors 4-connected 8-connected ambiguous (3) Distance metrics Euclidean : De(X,Y) = ((x2-y2)^2 + (y2-y1)^2)^1/2 City Block : Dcb(X,Y) = |x1-x2| + |y1-y2| Chessboard : Dcb(X,y) = max{|x1-x2|,|y1-y2|} (4) 명암도 영상(gray image) (5) RGB 영상 : 각 채널별 8비트, 24비트 개의 색 표현 가능 (6) 이진 영상 (7) 영상의 용량 : 시간(s)*프레임(f/s)화소의 수화소당 비트 2) 컬러 공간에 대한 이해 (1) 컬러는 인가의 눈에 보이는 가시 광선 (2) 빛의 3원색 : R, G, B 간의 가산 혼합 (3) 모니터에서는 RGB를 조합해 사용함 (4) 영상의 정의 컬러를 표현하는 화소값의 배열 (5) 흑백 영상 분리 RGB 컬러 공간 : 0.333R+0.333B+0.333G NTSC 제안 각 RGB값 중 하나만 사용 Green만 사용 Gray level = (R^2+B^2+G^2)^1/2 / 3^1/2 Gray level = 0.212671R + 0.715160G + 0.071169B (6) 다른 영상 처리 응용에 한계 RGB 컬러 요소들은 상호 관계가 너무 커서 특정 생성만 분리하기 어려움 (7) HSI 컬러 공간 색상, 채도, 명도로 구분한 컬러 공간으로 인간의 시각 시스템과 유사 3) HSI 컬러 공간 (1) 색의 3 요소 색상(hue) : pure colore 채도(saturation) : white 와 pure color 와의 혼합 비율 명도(Intensity) : 색의 밝고 어두운 정도 (2) 색입체 먼셀, 오스왈드, P.G.C.S 등 Hue : 원통모양의 주변, 0 ~ 360 Satuation : 중심으로부터의 거리, 0 ~ 1 Intensity : 하단 꼭지점에서 최상부 까지의 거리, 0 ~ 1, 색의 표현 범위가 달라짐 (3) RGB -> HSI H = { Θ if B<=G ㅤㅤ{ 360 - 0 if B<=G Θ = cos^-1[1/2*[(R-G)+(R+B)]/((R-G)^2+(R-B)(G-B))^1/2] S = 1 - 3/(R+G+B)*[min(R,G,B)] I = 1/3*(R+G+B) (4) CMYK 컬러 공간 : Printer 청록(Cyan) : C=255-R 자홍(Magenta) : M=255-G 노랑(Yellow) : Y=255-B 감산 혼합 C+M+Y= 검정 K = min(C,M,Y) C = 기존 C - K M = 기존 M - K Y = 기존 Y - K 인쇄를 보낼 때는 CMYK 컬러 공간으로 변환해 보내는 것이 좋다 CMYK 컬러 공간의 한계 RGB보다 범위에 한계 다소 뿌옇게 인쇄 CMYK 형태로 직접 모니터로 불러들여 작업하지 않음 5) 다른 컬러 공간 (1) YIQ 인간의 시각체계와 유사하게 흉내낸 최초의 색상공간 Y는 명조, I는 orange-cyan, Q는 Green-Magenta 1950년대, 컬러 텔레비전(NTSC방식) 개발자들의 의해 구성 (2) YCbCr 색상정보로 부터 명도를 분리하는 또 하나의 다른 색상 공간 Y는 명도, Cb는 푸른색, Cr, 붉은색 JPEG, MPEG 및 디지털 TV의 표준으로 사용 (3) CIE LAB : uniform color space L*, a*, b* L* 는 명도, a* red와 green, b*는 yellow와 blue 3. 화소값 기본 처리 1) 영상의 밝기 조절 (1) 명암도 영상(흑백 영상) 한 화소당 8비트의 데이터 크기 0 ~ 255의 범위 (2) 명암값을 더하거나 뺄 경우 0이하 이거나 255이상일 때 문제 발생 클랭핌을 이용한 해결 Saturation : 0이하 -> 0, 255 이상 -> 255 Wrap : 256 = 1, 257 = 2, 258 = 3, 반전 시키는 방법이지만 명암 불균등을 낳는다. (3) 영상의 산술 연산 밝게 = 255에 가깝게 어둡게 = 0에 가깝게 (4) 산술 연산 적용 예 차영상 : 움직임 추적에 쓰임 2) 영상의 명암대비 조절 (1) 명암 대비(Contrast) : 명암값의 분포 낮음 명암 대비 : 명암차가 적음 높은 명암 대비 : 명암차가 큼 (2) 대비의 증가 = 곱셈 연산 (3) 대비의 감소 = 나눗셈 연산 3) 히스토그램 (1) 히스토그램 각화소의 명암값의 개수 영상의 명암 값 프로필(profile) - > 히스토그램 유사도를 사용한 영상 비교에 유용하다 4) 히스토그램 평활화 한 쪽에 치우친 명암 분포를 가진 히스토그램을 재분배 하는 과정을 거쳐 일정한 분포를 가지게 하는 히스토그램 h(i) = (H(i)/Nt)*Gmax h(i) : 정규화 합 히스토그램 H(i) : 누적 히스토그램 Nt : 영상에서 픽셀의 총 개수 Gmax : 영상의 최대 밝기 5) 히스토그램 스트레칭 명암 대비 확장, 명암 대비 스트레칭 낮은 대비의 히스토그램을 균등한 분포로 만드는 알고리즘 X: 기존 명암 값 low : 히스토그램에서 가장 작은 화소값 high : 히스토그램에서 가장 큰 화소값 새로운 명암 값 = 255*(X-low)/(high-low) 스트레칭 변형 : 엔드인 탐색(ends-in search) low, high의 범위 값을 지정하여 스트레칭 한다. 히스토그램의 특정 부분에 화소들이 치우진 형상을 보정하는데 유용하다. 새로운 명암 값 = { 0 for X<=low ㅤㅤㅤㅤㅤㅤㅤㅤ{ 255*(x-low)/(high-low) for low<=X<high ㅤㅤㅤㅤㅤㅤㅤㅤ{ 255 for high<=X 6) 명암 변환 (1) 명암 변환(Intensity Transformation) 미리 지정된 함수 f(x)를 바탕으로 이진 화소값을 새로운 화소값으로 바꿔주는 알고리즘 널 변환(Null Transforamtion) : f(x) = x , 원영상과 같음 역 변환(Inverse Transformation) : f(x) = 255 - x (음화 영상,negative image) (2) 비트 플래너 슬라이싱(bit-planner slicing) 변환 각 비트에 대하여 0인지 1인지 검사하여 하나의 영상 형태로 만든 것을 비트 평면이라고 부른다 msb는 영상의 윤곽 정보를 가장 잘 간직하고 있다. lsb는 영상의 윤곽 정보를 거의 저장하고 있지 않다. 비트 평면 분할은 특정 비트의 중요도를 분석하는데 중요한 정보를 제공한다. 예) 영상 압축, 워터마킹 기법에 적용 7) 이진 영상 변환 및 처리 (1) 이진화 배경과 객체의 간단한 분리, 영상의 간략화 등의 목적으로 영상 분석 분야에서 필수적인 전처리 과정이다 (2) 경계값 설정 방법에 따른 이진 영상 생성 알고리즘 히스토그램의 분포를 파악하여 적합한 경계값을 설정 블록 이진화 기법 적용 -> 블록으로 나뉘어 평균값을 임계로 이중 경계값 설정 적응적 경계값 반복적 경계값 난수 경계값 (3) 단일 경계값과 이중 경계값 설정을 이용한 이진 영상 변환 단일 경계값을 이용한 이진 영상 변환 Binary-image[x][y] = { 1 if Gray-image[x][y]>=threshold ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ{ 0 else Gray-image[x][y]<threshold 이중 경계값을 이용한 이진 영상 변환 Binary-image[x][y] = { 1 if low-threshold<=Gray-image[x][y]<high-threshold ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ{ 0 otherwise (4) 히스토그램 분포를 이용한 이진 영상 변환 Otsu(온츄) Algorithm 영상의 히스토그램의 형태가 쌍봉형이라고 가정 했을 때 그 사이의 계곡점을 찾아 임계값으로 하고 분할 후, 분할 된 클래스 사이의 분산을 최대화 시키는 임계값을 찾는 방법 클래스 내의 분산과 클래스 간의 분산화 전체 구간에서의 분산을 이용하여 클래스 간의 분산이 최대가 될 때의 값(클래스 내의 분산이 가장 작을 때)을 임계값으로 한다. 전체 분산 : αa^2(t) = αw^2(t) + αb^2(t) 클래스 내의 분산 : αw^2(t) = W1(t)α1^2(t) + W2(t)α2^2(t) 클래스 간의 분산 : αb^2(t) = αb^2-αw^2 = W1(t)W2(t)[u1(t)-u2(t)]^2 Wn : 전체 클래스에 대한 각 클래스의 확률 un : 각 클래스에 대한 평균 명도값 (5) 반본적 경계값 설정 을 이용한 이진 영상 변환 영상의 화소 평균 값을 구할 때 모든 화소의 값을 더해서 전체화소의 개수로 나누어 평균을 계산하는 것 보다 수행 속도 면에서 훨씬 빠른 것으로 알려져 있다. step 1. 모든 화소값의 평균값을 계산하여 초기 임계값을 T라고 한다 step 2. 그레이 스케일 값이 T 보다 작은 픽셀들의 그레이 스케일 값의 평균 u1이라고 하고, T보다 큰 스케일 값의 평균을 u2라고 하여 임계 값을 다음과 같이 계산한다 T = (u1+u2)/2 step 3. T간의 변화가 없을 때 가지 반복한다.