Chapter 1 디지털 영상처리의 개념
디지털 영상처리 디지털 영상처리의 시초 디지털 영상처리(digital image processing)의 정의 1964년 미국의 캘리포니아에 있는 제트 추진 연구소에서 시작 달 표면을 찍은 위성사진의 화질을 개선하기 위한 디지털 컴퓨터를 사용 디지털 영상처리(digital image processing)의 정의 사진정보(아날로그정보)를 “디지털 정보”로 변환, 디지털 컴퓨터에서 영상의 화질 강화나 변형을 수행하는 처리내용 입력 /출력 : 디지털 영상 디지털 영상 분석 (digital image analysis) 디지털 영상 안에 담긴 내용을 묘사하고 인식하기 위한 작업 Computer vision 입력: 디지털 영상 출력: 상징적 영상묘사(symbolic image description)
1. 디지털 영상 데이터의 흐름(1/2) 영상의 취득 영상의 편집 및 처리 처리결과의 출력 스캔 디지털 카메라나 캠코더를 이용한 촬영 아날로그 카메라 -> Frame Grabber Card(A/D 변환보드) 영상의 편집 및 처리 디지털 영상처리 도구(Adobe Photoshop, JASC PaintShop, …) 목적 : 전자출판, 자동화 검사를 위한 영상분석, 인식처리… 방송, 그래픽스, 게임… 처리결과의 출력 모니터, 프린터, 파일 저장, 원격지 전송, ….
1. 디지털 영상 데이터의 흐름(2/2)
2. 디지털 영상의 내부(1/2) 흑백 컬러 각 픽셀값 : 0 ~ 255 각 픽셀당 8 bit M x N 흑백 영상의 크기 0 : 어두운 픽셀 255 : 밝은 픽셀 각 픽셀당 8 bit 28 = 256 M x N 흑백 영상의 크기 M x N x 8 ( bit ) 컬러 각 픽셀값 : R, G, B R : 0 ~ 255 G : 0 ~ 255 B : 0 ~ 255 M x N 컬러 영상의 크기 M x N x 8 x 3 (bit) 그림 1-1 디지털 영상데이터
2. 디지털 영상의 내부(2/2) 그림 1-2 흑백영상의 예와 내부값
3. 디지털 영상처리의 특징 정확성 재현성 제어가능성 과도한 데이터량 디지털 데이터에 대한 컴퓨터에 의한 처리이므로 정확 정해진 알고리즘 적용, 같은 데이터에 대해 같은 결과가 얻어짐 제어가능성 동일 디지털 데이터에 대하여 다양한 알고리즘 적용, 서로 다른 처리 가능 과도한 데이터량 FA용 영상의 예 : 기본 307,200 개의 픽셀
4. 디지털 영상처리의 응용분야(1/7) OA 용 영상처리 OCR (Optical Character Recognition) 주로 흑백 이진 영상 CAD 도면의 자동입력, 우편번호 인식하여 편지를 자동으로 분류하는 시스템, … 그림 1-3 OCR에서의 자동 문자 분리의 예
4. 디지털 영상처리의 응용분야(2/7) 의료용 영상처리 각 영역을 분리하여 이를 합성 각 영역의 기능 연구에 사용 필요한 부분을 분리, 이를 부각하여 진료에 사용 MR 영상의 해석 : Level Set적용
4. 디지털 영상처리의 응용분야(3/7) 위성사진 처리 가시화를 증가시키기 위한 영상 복원(image restoration) 분야에 집중적 연구 수행 3차원 형상 자동 추출, 특정 위치 자동 발견, … 자원, 기상정보, 어업, 환경오염, 도시계획, … 그림 1-5 위성사진에서의 지형인식
4. 디지털 영상처리의 응용분야(4/7) FA 용 영상처리 Machine vision 공장 부품결함의 자동 검출, 마크 인식 반도체 웨이퍼의 결함검사 부품 조립을 위한 위치 정합 그림 1-6 공장자동화에서의 영상처리 (금속면의 결합검사)
4. 디지털 영상처리의 응용분야(5/7) 방송 / 영화에서의 영상처리 뉴스 예 영화 예 blue screen에서 아나운서 촬영 아나운서 영상을 위성 영상과 합성 영화 예 영화 “터미네이터”에서 사이보그가 사람으로 변하는 것을 표현하기 위해 영상 몰핑 (image morphing) 기술 적용 그림 1-7 영화에서의 영상처리
4. 디지털 영상처리의 응용분야(6/7) 자동 영상 인덱싱 인터넷이나 이미지 데이터 베이스에서 필요로 하는 정보를 포함하는 영상 데이터를 자동으로 찾아 오는 기술 영화영상 예 : 전체 영화에서 주인공이 등장하는 장면의 컷 추출 그림 검색 예 : 뒷 배경이 초록인 꽃병이 그려진 그림 찾기… 그림 1-8 유사한 특징을 가지는 영상들
4. 디지털 영상처리의 응용분야(7/7) 고화질의 영상압축 및 통신 영상화질(quality)의 열화(degradation)을 최소화하면서 많은 영상 데이터를 전송하기 위한 기술 JPEG, MPEG-1, 2, 4, 7emd의 영상 압축 및 전송에 대한 국제 표준화 규격이 발표된 상태, 이 표준을 따르는 상업용 기기들이 판매되고 있음 압축/복원 알고리즘 예 Wavelet DCT(Discrete Consine Transform) Object 기반 영상압축 … 그림 1-9 DCT를 이용한 영상압축과 복원
Chapter 2 페인트샵을 이용한 영상처리 맛보기
JASC 소프트사의 페인트샵 표준화된 영상형식을 읽고 처리 JPG, GIF, RAW, PCX, …. 그림 2-1 페인트샵의 초기 실행 화면
1. 입력영상의 정보 보기 [View]->[Image Information] 현재 active 된 영상에 대한 정보가 나타남 영상크기 : 세로 551, 가로 579 1인치당 72 pixel 존재 각 pixel 은 24 bit 1600백만 컬러 표현
2. 파일 형식의 변경과 저장 다양한 영상 형식 JPG : JPEG 압축표준을 사용한 압축 저장한 영상 RAW : 헤드 정보 없이 영상데이터값만 들어 있는 영상파일 BMP : 비트맵 헤더 정보와 영상데이터 값을 가지는 영상파일 영상의 크기, 컬러수, 팔레트등의 정보 포함 Head 그림 2-6 영상파일을 다양한 형식으로 저장할 수 있는 대화박스 영상데이터
3. 히스토그램 기능 Toolbar에서 histogram icon 선택 그림 2-8 흑백영상에 대한 밝기 히스토그램의 표시 그림 2-7 히스토그램 기능의 선택
4. 간단한 영상처리(/) 부분 영역확대 기능 돋보기 아이콘 선택 : 왼쪽 마우스 클릭 : 영상 확대, 오른쪽 마우스 클릭 : 영상 축소
4. 간단한 영상처리(/) 원영상 반전/거울 비치기 기능 Flip영상 Mirror영상
4. 간단한 영상처리(/) 크기 조정 기능 [image]->[canvas size] : 영상을 담는 외각크기만 변경, 영상크기는 불변 [image]->[resize] : 영상크기를 변경 원영상(255x273) Canvas 크기 변경(300x300) 영상크기 변경(300x300) 영상의 크기 조정을 위한 대화박스
4. 간단한 영상처리(/) 저역 통과 필터 ( low pass filter ) 기능 [image]->[blur]->[Gaussian Blur] 영상내에서 밝기나 컬러값이 급격하게 변화하는 부분을 줄여주는 효과 Gaussian Blurring 처리 전,후 영상
4. 간단한 영상처리(/) 에지(edges) 추출 기능
4. 간단한 영상처리(/) 히스토그램 분석 처리 영상 [Colors]->[Histogram Functions]->[Equalize] 히스토그램 정규화(영상의 밝기값이 0~255 사이에 골고루 분포되도록 영상을 변형시킴) [Colors]->[Histogram Functions]->[Stretch] 영상의 밝기 히스토그램을 넓혀서 밝기의 분포를 넓게 펼침
4. 간단한 영상처리(/) 원영상 Equalized 영상 Stretched 영상
4. 간단한 영상처리(/) 컬러 성분 분석 기능 [Colors]->[Cannel Splitting]->[Split to RGB] 원영상 입력 컬러영상을 R, G, B 채널로 분리하는 기능 원영상 Red Green Blue
컬러 성분 분석 기능 [Colors]->[Cannel Splitting]->[Split to HSL] 원영상 입력 컬러영상을 색상[H], 명도[I], 채도[S]채널로 분리하는 기능 원영상 색상(Hue): R->..G->..B의 색상을 0 에서 255 구간에 표현 R(0)->G(128)->B(255) 채도(Saturation) : 순색에 가까울수록 밝음 명도(Luminance) : 영상의 밝기를 나타내는 정도에 따라 색 결정
Chapter 3 누구나 쉽게 구현하는 영상처리
1. Visual C++ 프로젝트 만들기
프로그램 [리스트 3-1] 입력
2. 간단한 영상처리 코드 입력 : 역상처리 “char”와 “unsigned char” Char : 부호비트 1비트 포함 /// 이프로그램은 RAW형식을 파일을 읽고 쓰는 가장 간단한 /// 영상처리 프로그램이다. #include <stdio.h> void main() { int i, j; unsigned char OrgImg[256][256]; // 디스크에서 영상데이터 읽기 FILE *infile = fopen("coin.raw","rb"); if(infile==NULL) { printf("File open error !!"); return; } fread(OrgImg,sizeof(char),256*256,infile); fclose(infile); // 역상계산을 위한 영상처리 for(i=0; i<256; i++) for(j=0; j<256; j++) OrgImg[i][j] = 255-OrgImg[i][j]; } // 하드디스크에 영상데이터 쓰기 FILE *outfile = fopen("coin_inv.raw","wb"); fwrite(OrgImg,sizeof(char),256*256,outfile); fclose(outfile); “char”와 “unsigned char” Char : 부호비트 1비트 포함 표현범위 27 = 128 -128 ~ 127 Unsigned char : 8 bit 모두 양수 표현 표현 범위 : 0 ~ 255 리스트 3-1
원영상 “coin.raw” 처리된 역상
3. BMP 파일 입력을 통한 영상처리 영상데이터 영상데이터 헤드없음 BMP 파일에 대한 정보 BMP 영상에 대한 정보 팔레트 정보 영상데이터 영상데이터 RAW 포맷 BMP 포맷
원영상 “talent.bmp” 처리된 역상
4. 비트맵에 대한 소개 비트맵의 종류 DDB(Device Dependent Bitmap) : 디바이스에 종속적인 비트맵 DIB(Device Indenpent Bitmap) : 디바이스에 독립적인 비트맵 윈도우의 디스플레이 등록정보
비트맵 영상의 컬러 표현 트루컬러( true) 모드 인덱스에 의한 컬러 모드 영상 단위 픽셀이 24비트 RGB가 각각 8비트 표현 가능 컬러 수 224 = 1, 600만 컬러 인덱스에 의한 컬러 모드 단위픽셀당 24비트를 8비트나 16 비트로 줄여서 저장하기 위한 것 영상에서 가장 많이 사용된 색깔을 8비트로 줄인다면 28 = 256개를 고르고 16 비트라면 216 = 65,536개를 골라 이를 테이블로 만들어 저장해 사용 이러한 컬러테이블을 팔레트(Palette) 라 함. 인덱스에 의한 영상저장 8bit 팔레트
흑백영상의 표현 R, G, B가 모두 동일할 때 흑백영상 표현 검정색 : R = G = B = 0 흑백 영상의 팔레트
5. 비트맵 포맷의 구조 BMP 파일 헤드를 구성하는 구조체 변수들