이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제 강력추천
영상 처리 프로그래밍 by Visual C++
CD 1
황선규
한빛미디어 2007.05.25.
베스트
IT 모바일 top100 5주
가격
34,000
10 30,600
YES포인트?
1,700원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  해외배송 가능?
  •  문화비소득공제 가능

이 분야의 이벤트

IT EXPERT

책소개

목차

1부. 영상 처리 프로그래밍의 기초

01장. 영상 처리의 개요
01 영상 처리의 개요
디지털 영상 처리
다양한 영상 처리 응용 분야

02 영상 처리 프로그래밍
영상 표현 방법
2차원 배열 처리

02장 Visual C++ 2005 시작하기

01 Visual C++ 2005 개요
윈도우즈 프로그래밍과 MFC
Visual C++ 2005를 사용해야 하는 이유

02 First 프로그램 예제
새 프로젝트 만들기
MFC 응용 프로그램 마법사
Visual Studio 2005의 구조
프로그램 빌드 및 실행

03 MFC 프로그램 코드 분석
MFC 클래스들간의 상관 관계
CFirstApp 클래스 분석
CMainFrame 클래스 분석
CChildFrame 클래스 분석
CFirstDoc 클래스 분석
CFirstView 클래스 분석

04 Visual C++ 6.0 사용자를 위한 팁
Visual C++ 6.0 프로젝트 가져오기
Visual C++ 2005에서 주의해야 할 사항


03장 BMP 파일의 이해

01 비트맵 개요
비트맵 정의와 종류

02 BMP 파일의 이해
BMP 파일의 전체 구조
BITMAPFILEHEADER 구조체
BITMAPINFOHEADER 구조체
RGBQUAD 구조체의 배열
픽셀 데이터

03 실제 BMP 파일의 분석
트루컬러 BMP 파일의 분석
그레이스케일 BMP 파일의 분석

04 BMP 파일을 화면에 출력
SetDIBitsToDevice와 StretchDIBits 함수
BmpShow 프로그램 작성


04장 CDib 클래스 만들기

01 DibCreate 프로그램 생성
프로젝트에 CDib 클래스 추가하기
CDib 클래스 뼈대 만들기

02 CDib 클래스 만들기
생성자와 소멸자
비트맵 생성과 소멸
BMP 파일 불러오기와 저장하기
비트맵 정보 제공
비트맵 화면 출력
치환 연산자 재정의와 비트맵 복사
비트맵의 픽셀 값 제어 함수
클립 보드를 이용한 복사하기와 붙여넣기
기타 전역 함수들
CDib 전체 소스

03 RGBBYTE 클래스 만들기
RGBBYTE 클래스의 구조
생성자와 소멸자

04 CDib 클래스 사용하기
OnLButtonDown 함수 수정

05장 영상 처리 프로그램 틀 만들기

01 ImageTool 프로그램 만들기
ImageTool 프로젝트 생성
CDib 클래스 추가하기
BMP 파일 불러오기와 저장하기
화면 출력 기능 추가하기
프로그램 구동 시 빈 창 띄우지 않기
창 크기를 영상의 크기에 맞추기
영상의 바깥 영역에 빗금 그리기

02 영상 새로 만들기 기능 수정(대화상자 만들기)
새 대화상자 추가하기
대화상자에 대한 클래스 추가
대화상자 컨트롤에 대한 변수 추가
대화상자를 화면에 출력하는 코드 작성

03 영상을 새 창에 띄우기(메뉴 추가하기)
영상을 새 창으로 띄우기의 구조
새 메뉴 항목 및 메뉴 이벤트 처리기 추가
클립 보드를 이용한 복사하기와 붙여넣기

04 영상 확대하여 보기(툴바 만들기)
확대하여 보기 기능 추가
확대하여 보기 관련 메뉴와 메뉴 이벤트 처리기 추가
툴바 버튼 추가하기

05 영상 정보 표시하기(상태바 처리하기)
기본 상태바의 구역 변경
상태바에 영상 정보 표시



2부 영상 처리 알고리즘 구현

06장 화질 향상 기법

01 영상 반전하기
CDib 클래스에서 픽셀 참조 방법
영상의 반전이란?
영상 반전 코드 작성하기
영상 반전 메뉴 및 메뉴 이벤트 처리기 추가

02 밝기와 명암비 조절
밝기 조절
명암비 조절
슬라이더 바를 이용한 밝기 조절 대화상자 만들기
명암비 조절 대화상자 만들기
밝기와 명암비 조절 메뉴 및 메뉴 이벤트 처리기 추가

03 감마 보정
지수 법칙 변환과 감마 보정
감마 보정 코드 작성하기
실수 값을 입력받는 감마 보정 대화상자 만들기
감마 보정 메뉴 및 메뉴 이벤트 처리기 추가

04 히스토그램 분석
히스토그램이란?
히스토그램 대화상자 만들기
히스토그램 보기 메뉴 및 메뉴 이벤트 추가

05 히스토그램 균등화
히스토그램 균등화란?
히스토그램 균등화 메뉴 만들기

07장 영상의 산술 및 논리 연산

01 영상의 산술 연산
덧셈 연산
뺄셈 연산
평균 연산
차이 연산

02 영상의 논리 연산
AND 연산
OR 연산

03 산술 및 논리 연산 기능 구현
도큐먼트 리스트를 받아오는 방법
도큐먼트 선택이 가능한 산술 및 논리 연산 대화상자 만들기
산술 및 논리 연산 메뉴 및 메뉴 이벤트 추가

04 비트 평면 분할
비트 평면이란?
비트 평면 분할 메뉴 및 메뉴 이벤트 처리기 추가
모든 창 닫기 기능 추가

08장 다양한 공간적 필터링 기법

01 공간적 필터링
공간적 필터링의 기본적 개념
공간적 필터링의 구현 방법

02 영상 부드럽게 만들기
평균 값 필터
가중 평균 값 필터
가우시안 필터
가우시안 필터 대화상자 만들기
영상 부드럽게 만들기 메뉴 및 메뉴 이벤트 처리기 추가

03 영상 날카롭게 만들기
언샤프 마스크 필터링
라플라시안을 이용한 언샤프 마스크 필터 구현
영상 날카롭게 만들기 메뉴 및 메뉴 이벤트 처리기 추가

04 잡음 생성
C/C++에서 균일한 분포의 임의 정수 생성
가우시안 임의 잡음 생성
소금&후추 잡음 생성
잡음 추가 대화상자 만들기
잡음 추가 메뉴 및 메뉴 이벤트 처리기 추가

05 잡음 제거를 위한 비선형 필터
미디언 필터
미디언 필터 메뉴 추가와 메뉴 이벤트 처리
비등방성 확산 필터
비등방성 확산 대화상자 만들기
비등방성 확산 필터 메뉴 및 메뉴 이벤트 처리기 추가

09장 영상의 기하학적 변환

01 영상의 이동 변환
이동 변환이란?
이동 변환의 구현
이동 변환 대화상자 만들기
이동 변환 메뉴 및 메뉴 이벤트 처리 추가

02 영상의 크기 변환
크기 변환과 보간법
최근방 이웃 보간법
양선형 보간법
3차 회선 보간법
영상의 축소 시 고려해야 할 사항
크기 변환 대화상자 만들기
크기 변환 메뉴 및 메뉴 이벤트 처리 추가

03 영상의 회전 변환
회전 변환에 관한 이론적 설명
임의의 각도 회전 구현
특수 각도에 대한 회전 구현
회전 변환 대화상자 만들기
회전 변환 메뉴 및 메뉴 이벤트 처리 추가

04 영상의 대칭 변환
좌우 대칭
상하 대칭
좌우 대칭과 상하 대칭 메뉴 및 메뉴 이벤트 처리 추가

10장 주파수 공간에서의 영상 처리

01 주파수 공간의 이해
1차원 데이터에 대한 이산 푸리에 변환
1차원 데이터에 대한 이산 푸리에 변환의 구현

02 영상의 푸리에 변환
2차원 영상의 푸리에 변환
2차원 영상의 푸리에 변환 구현하기
2차원 푸리에 변환 방법의 개선
DFT와 DFTRC 메뉴 추가 및 메뉴 이벤트 처리기 추가

03 고속 푸리에 변환
고속 푸리에 변환의 이론적 배경
영상의 고속 푸리에 변환
FFT 메뉴 추가

04 주파수 공간에서의 필터링
이상적 저역 및 고역 통과 필터
가우시안 저역 및 고역 통과 필터
주파수 공간에서의 필터링 대화상자 만들기
주파수 공간에서의 필터링 메뉴 추가 및 이벤트 처리

11장 영상의 특징값 추출 방법

01 마스크를 이용한 경계선 검출
함수의 1차 미분
다양한 경계선 검출 마스크
경계선 검출 메뉴 및 메뉴 이벤트 처리기 추가

02 허프 변환을 이용한 직선 검출
허프 변환을 이용한 직선 검출 방법
룩업 테이블을 이용한 허프 변환의 구현
허프 변환 메뉴 및 메뉴 이벤트 처리기 추가

03 해리스 코너 포인트 검출 방법
해리스 코너 검출 방법
해리스 코너 검출 구현
해리스 코너 검출 대화상자 추가
해리스 코너 검출 메뉴 및 메뉴 이벤트 처리기 추가

12장 컬러 영상 처리

01 트루컬러 비트맵 다루기
CDib 클래스에서 컬러 픽셀 참조 방법
트루컬러 비트맵을 그레이스케일 비트맵으로 변환
트루컬러 영상을 위한 메뉴 및 메뉴 이벤트 처리

02 다양한 색모델
색상 표현 방법
RGB 색모델
HSI 색모델
YUV 색모델
그 외의 색모델

03 색상 평면 나누기와 합치기
색상 평면 나누기
색상 평면 나누기 메뉴 및 메뉴 이벤트 처리기 추가
색상 평면 합치기
색상 평면 합치기 대화상자 추가
색상 평면 합치기 메뉴 및 메뉴 이벤트 처리기 추가

04 컬러 영상 처리
컬러 경계선 검출
컬러 히스토그램 균등화
컬러 영상 처리 메뉴 및 메뉴 이벤트 처리기 추가

13장 영상 분할
01 이진화 기법
영상의 이진화
반복적 방법을 이용한 이진화 임계값 결정 방법
미리보기 기능이 있는 이진화 대화상자 추가
이진화 메뉴 및 메뉴 이벤트 처리기 추가

02 레이블링 기법
전통적 레이블링 기법
레이블링 메뉴 및 메뉴 이벤트 처리기 추가

03 외곽선 추적
외곽선 추적 기법
외곽선 추적 메뉴 및 메뉴 이벤트 처리기 추가


14장 모폴로지 연산

01 이진 영상의 모폴로지 연산
모폴로지를 위한 기본 정의
이진 영상의 침식과 팽창 연산
이진 영상의 열기와 닫기 연산
이진 영상의 모폴로지 메뉴 및 메뉴 이벤트 처리기 추가
모폴로지 기법을 응용한 경계선 검출

02 그레이스케일 영상의 모폴로지 연산
그레이스케일 영상의 침식과 팽창 연산
그레이스케일 영상의 열기와 닫기 연산
그레이스케일 영상의 모폴로지 메뉴 및 메뉴 이벤트 추가


15장 모양 기술자

01 외곽선 기반의 푸리에 기술자
푸리에 기술자
푸리에 기술자 대화상자 추가
푸리에 기술자 메뉴 및 메뉴 이벤트 처리기 추가

02 영역 기반의 불변 모멘트
불변 모멘트
불변 모멘트 메뉴 및 메뉴 이벤트 처리기 추가


16장 동영상 처리

01 AVI 파일 처리하기
AVI 파일의 구조와 사용법
CAvi 클래스 만들기

02 AVI 플레이어 만들기
새 도큐먼트 템플릿 등록하기
CAvi 클래스를 이용한 동영상 재생
동영상 재생을 위한 툴바 만들기
동영상 재생을 위한 코드 작성

03 움직임 벡터 추정
블록 매칭 움직임 추정 방법
CDibFullSearch 클래스 만들기
움직임 벡터 메뉴 및 메뉴 이벤트 처리기 추가


3부. 부록

A. OpenCV 이용하기
OpenCV 개요
OpenCV 설치 및 설정
IplImage 구조체 사용 방법
OpenCV 라이브러리 사용 방법
ImageTool 프로젝트에서 OpenCV 사용하기
OpenCV 변환 함수 테스트

B. 침입자 감시 시스템 만들기
새 프로젝트 만들기
대화상자 디자인
프로그램 코드 작성
프로그램 테스트

Visual Studio 2005 설치
찾아보기
참고문헌

저자 소개 1

2006년 한양대학교에서 영상 처리 전공으로 박사 학위를 받았으며, 이후 뉴질랜드 캔터베리 대학교와 한양대학교에서 박사후과정(Post-Doc)과 연구 교수로 재직하였다. 2009년 LG전자 MC연구소에 입사하여 전략 스마트폰 카메라 기능 개발과 안드로이드 카메라 프레임워크 업무를 담당하였다. 2016년부터 패스트캠퍼스에서 직장인을 대상으로 하는 OpenCV 강의를 진행하고 있고, 기업체와 대학에서 특강도 진행하고 있다. 저서로는 [영상 처리 프로그래밍 by Visual C++], [Visual C++ 영상 처리 프로그래밍], 역서로는 [OpenCV 제대로 배우기]가 있다. ‘易地
2006년 한양대학교에서 영상 처리 전공으로 박사 학위를 받았으며, 이후 뉴질랜드 캔터베리 대학교와 한양대학교에서 박사후과정(Post-Doc)과 연구 교수로 재직하였다. 2009년 LG전자 MC연구소에 입사하여 전략 스마트폰 카메라 기능 개발과 안드로이드 카메라 프레임워크 업무를 담당하였다. 2016년부터 패스트캠퍼스에서 직장인을 대상으로 하는 OpenCV 강의를 진행하고 있고, 기업체와 대학에서 특강도 진행하고 있다. 저서로는 [영상 처리 프로그래밍 by Visual C++], [Visual C++ 영상 처리 프로그래밍], 역서로는 [OpenCV 제대로 배우기]가 있다. ‘易地思之’가 좌우명이고, ‘知之爲知之 不知爲不知 是知也’ 글귀를 좋아한다.
https://sunkyoo.github.io/

황선규의 다른 상품

품목정보

발행일
2007년 05월 25일
쪽수, 무게, 크기
860쪽 | 1754g | 188*254*40mm
ISBN13
9788979144901

줄거리

01. 영상 처리의 개요
이 장에서는 영상 처리에 대한 전반적인 사항에 대하여 알아본다. 영상 처리의 정의, 역사에 대하여 알아보고 현재 활발히 연구되고 있는 영상 처리 분야에 대하여 알아본다. 그리고, 컴퓨터에서 영상을 표현하는 방법과 C/C++ 프로그램을 이용하여 영상을 다루기 위해 기본적으로 알아야 하는 프로그래밍 기법에 대하여 알아본다.

02. Visual C++ 2005 시작하기
이 장에서는 Visual C++ 2005를 이용하여 윈도우즈 프로그램을 만드는 방법에 대하여 알아본다. 영상 처리를 공부하는 많은 사람들이 영상 처리 알고리즘의 이해뿐만이 아니라 그 구현에 많은 시간을 투자하고 있다. 여러 가지 프로그래밍 언어가 존재하지만 영상 처리를 위해 가장 널리 사용되는 언어는 단연 C/C++ 이고, 이를 위해 Microsoft 사의 Visual C++ 이 가장 많이 사용되고 있다. 이 책에서는 Visual C++ 프로그램의 가장 최신 버전인 Visual C++ 2005를 이용하여 윈도우즈 프로그램을 만드는 방법에 대하여 설명한다.

03. BMP 파일의 이해
BMP 파일이란 확장자가 "BMP"인 파일을 지칭하며, 윈도우즈에서 그림 또는 사진을 저장할 때 사용되는 가장 기본적인 파일 포맷이다. 보조프로그램에 있는 그림판 프로그램에서도 기본적으로 BMP 파일을 입출력 포맷으로 사용하며, 윈도우즈 바탕화면으로 지정하는 사진 파일도 BMP 파일이다. 이러한 BMP 파일은 구조적으로 비트맵(정확하게는 장치 독립 비트맵)이라는 포맷을 저장하기 위한 파일 형식이다. 이 장에서는 비트맵에 대하여 전반적으로 살펴본 후, 실제 BMP 파일을 분석하고 처리하는 방법에 대하여 알아본다.

04. CDib 클래스 만들기
이 장에서는 DIB 를 처리하는 클래스를 만드는 방법에 대하여 설명한다. 이 책에서 만들 DIB 처리 클래스의 이름은 CDib 이다. CDib 클래스는 BMP 파일의 입출력, 화면 출력, 클립보드를 이용한 복사와 붙여넣기 기능 등을 제공하며 영상의 픽셀을 참조하는 인터페이스를 제공할 것이다. 또한, 트루컬러 영상의 픽셀을 처리하기 위한 RGBBYTE 클래스도 새로 정의할 것이다. CDib와 RGBBYTE 클래스를 만드는 과정을 통하여 Visual C++ 2005 에서 새로운 클래스를 추가하는 방법과 C++ 에서 클래스 설계 시 고려해야 할 점들에 대하여 알아본다.

05. 영상 처리 프로그램 틀 만들기
이 장에서는 4 장에서 만든CDib 클래스를 이용하여 영상 처리 프로그램의 틀을 만들어본다. 여기서 영상 처리 프로그램의 틀이란 영상 처리를 위하여 기본적으로 필요한 최소 기능을 포함한 프로그램을 의미한다. 새로 만들 프로그램의 이름은 ImageTool 이다. ImageTool 프로그램의 구조와 소스 코드를 제대로 이해하는 것은 매우 중요하다. 왜냐하면, 앞으로 설명할 다양한 영상 처리 알고리즘들은 모두 ImageTool 프로그램 안에서 구현될 것이기 때문이다. 여러분들이 이 책을 끝까지 숙독하며 따라온다면 최종적으로 다양한 기능이 집적된 멋진 영상 처리 프로그램을 완성할 수 있을 것이다. 이 장에서 설명할 프로그램의 기능은 기본적인 영상 입출력, 영상의 화면 출력, 영상의 복사와 붙여넣기, 영상 확대하여 보기, 상태바에 영상 픽셀 정보 표시 등이다.

06. 화질 향상 기법
이 장부터는 실제 영상을 처리하는 다양한 방법에 대하여 설명하도록 한다. 가장 먼저 영상의 픽셀 정보를 다루는 방법에 대하여 알아보고, 간단한 화질 향상 기법들에 대하여 배워보도록 한다. 각각의 화질 향상 기법들은 먼저 이론적인 배경에 대하여 먼저 설명한 후, 실제 프로그램으로 구현하는 방법을 설명할 것이다.
이 장에서는 살펴볼 화질 향상 기법은 영상의 반전, 밝기 및 명암비 조절, 감마 보정, 그리고 히스토그램 균등화이다. 히스토그램은 영상의 특성을 분석하기 위한 좋은 방법 중의 하나로써, 히스토그램을 화면에 출력하는 방법에 대하여도 알아볼 것이다.

07. 영상의 산술 및 논리 연산
영상이란 픽셀의 그레이스케일 값으로 구성된 2차원 행렬로 생각할 수 있으며, 이 경우 두 행렬을 더하거나 빼는 산술 연산이 가능하다. 또한, 각 픽셀 값을 2진수 형태로 나타내었을 경우 논리합, 논리곱과 같은 논리 연산도 가능해진다. 이 장에서는 이러한 산술 및 논리 연산을 통하여 영상의 화질을 향상시키거나 분석하는 방법에 대하여 설명한다. 또한, 영상을 비트 평면으로 분할하는 방법에 대해서도 알아본다.

08. 다양한 공간적 필터링 기법
필터(filter)라는 말은 일상 생활에서도 많이 사용하는 말이다. 필터란 무언가를 걸러주는 역할을 하는 것을 지칭한다. 실생활에서 사용하는 필터는 보통 유해하거나 필요 없는 물질들을 걸러주는 역할을 한다. 영상 처리 및 신호 처리에서도 필터링(filtering)이라는 단어를 많이 사용하고 있다. 이 장에서는 영상 처리에서의 필터링은 어떤 의미를 가지며, 어떤 결과 영상을 생성하는 지에 대하여 알아보도록 하자.

09. 영상의 기하학적 변환
영상의 기하학적 변환이란 영상의 크기 또는 위치를 변화시키거나 영상을 회전시키는 등의 변환을 의미한다. 또한, 사각형의 영상을 평행사변형 또는 임의의 사각형 모양으로 변환시키는 어파인(affine) 또는 퍼스팩티프(perspective) 변환도 기하학적 변환에 속한다. 이 장에서는 이러한 영상의 기하학적 변환 중에서 이동 변환, 크기 변환, 회전 변환, 그리고 대칭 변환에 대하여 알아본다.
영상의 기하학적 변환을 할 때 알아야 하는 중요한 이론 중의 하나는 보간법(interpolation)이다. 영상 처리에서 보간법이란 특정 위치에서의 픽셀 값을 주변 픽셀 값의 정보를 이용하여 추정하는 방법으로 최근방 이웃 보간법, 양선형 보간법, 3차 회선 보간법, 스플라인(spline) 보간법 등이 존재한다. 영상의 기하학적 변환 시 각각의 보간법이 결과 영상의 화질에 어떠한 영향을 미치는지를 알아보도록 하자.

10. 주파수 공간에서의 영상 처리
8장에서 영상의 픽셀 값을 그대로 이용하는 공간적 영역에서의 필터링 기법들을 설명하였다. 그 중 영상을 부드럽게 하거나 날카롭게 하는 필터링 기법은 영상의 주파수 성분과 밀접한 관련이 있다. 이 장에서는 영상을 주파수 공간으로 변환하고, 주파수 공간에서 영상을 필터링하는 방법에 대하여 설명한다.
이를 위하여 먼저 영상을 주파수 공간으로 변환시키는 이산 푸리에 변환에 대하여 설명한다. 그리고, 이산 푸리에 변환을 빠르게 계산하는 고속 이산 푸리에 변환 알고리즘에 대하여 설명한다. 끝으로, 주파수 공간에서 저역 통과 필터와 고역 통과 필터에 대하여 설명하고, 각 필터의 결과에 대하여 분석할 것이다.

11. 영상의 특징값 추출 방법
영상의 특징값(feature)이란 점(point), 경계선(edge), 모서리(corner), 질감(texture), 색(color) 등 다른 부분과 구분이 되어 두드러지는 성질을 의미한다. 이러한 특징값은 영상 내에서 사용자가 원하는 특정 사물의 위치를 찾는데 사용될 수도 있고, 또는 특정 영상과 다른 영상의 유사성을 판단하는 기준을 제공하기도 한다.
이 장에서는 비교적 간단하게 영상의 경계선 정보를 찾아내는 방법에 대하여 먼저 설명한다. 그리고, 경계선 정보를 이용하여 영상에서 직선 성분을 찾아내는 허프 변환(Hough transform)에 대하여 알아본다. 마지막으로 영상에서 모서리 정보, 즉, 코너 포인트(corner point)를 찾아내는 해리스(Harris) 코너 포인트 검출 방법에 대하여 알아본다.

12. 컬러 영상 처리
지금까지 그레이스케일 영상의 밝기 정보만을 이용하는 영상 처리 방법들에 대하여 알아보았다. 이 장에서는 색상 정보를 가지고 있는 트루컬러 영상을 처리하는 방법에 대하여 알아본다. 먼저 영상 처리에서 사용하는 다양한 색 표현 모델에 대하여 알아보고, 색 모델을 서로 변환하는 방법에 대하여 알아본다. 그리고, 컬러 영상에서 경계선 검출 및 히스토그램 균등화를 수행하는 방법에 대하여 알아본다.

13. 영상 분할
이 장에서는 영상 분할(segmentation) 방법에 대하여 알아본다. 영상 분할이란 영상을 유사한 속성을 갖는 픽셀들의 집합으로 나누는 것을 통칭한다. 영상 분할은 영상 내에 존재하는 특정 객체를 인식(recognition)하기 위한 전처리 과정으로 의미가 있다. 이 장에서 알아볼 영상 분할 기법들은 영상 처리 분야에서 매우 기본적이면서도 필수적인 내용들이다. 먼저 영상을 이진화하는 방법에 대하여 알아본 후, 이진화된 영상에서 서로 연결된 픽셀들을 구분하는 레이블링(labeling) 기법에 대하여 알아보자. 또한, 특정 객체의 외곽선만을 추출하는 외곽선 추적(contour tracing) 방법에 대해서도 알아보자.

14. 모폴로지 연산
모폴로지 연산은 영상 내의 특정 객체의 형태를 변형시키는 용도로 사용되며, 객체의 표현, 기술을 위해 사용되기도 하는 영상 처리의 한 분야이다. 모폴로지 연산은 이진 영상 처리에 주로 사용되며, 그레이스케일 영상에도 적용될 수 있다. 이 장에서는 이진 영상과 그레이스케일 영상에서 사용되는 기본적인 모폴로지 연산들에 대하여 알아본다.

15. 모양 기술자
이 장에서는 영상에서 분할된 객체의 모양을 표현하는 방법에 대하여 알아본다. 영상 처리에서 모양을 기술한다는 말은 영상의 모양을 일련의 숫자들의 집합으로 표현하는 것을 의미한다. 객체의 모양을 기술하는 방법은 크게 두 가지로 분류할 수 있다. 하나는 객체의 외곽선 정보를 이용하여 모양을 기술하는 방법이고, 다른 하나는 객체가 차지하고 있는 영역 정보를 이용하여 모양을 기술하는 방법이다. 이 장에서는 외곽선 기반의 푸리에 기술자와 영역 기반의 불변 모멘트에 대하여 알아본다.

16. 동영상 처리
최근 웹 카메라, 디지털 카메라, 디지털 캠코더 등을 이용한 동영상 데이터의 사용이 보편화되고 있다. 영상 처리 분야에서도 예전 정지 영상만을 처리하던 단계에서 점차 동영상에서 시간 축에 따른 영상의 변화를 감지하고 처리하는 노력이 많아지고 있다. 이 장에서는 윈도우즈에서 보편적으로 사용하는 동영상 포맷인 AVI 파일에 대하여 알아보고, AVI 파일을 재생하는 방법에 대하여 알아본다. 또한, 동영상에서 움직임 정보를 추출하는 방법에 대해서도 알아본다.

A1. OpenCV 이용하기
OpenCV 라이브러리(Open Source Computer Vision Library)는 인텔(Intel)에서 주도해서 만들기 시작하여 현재는 오픈 소스로서 만들어지고 있는 영상 처리 라이브러리이다. 이 장에서는 OpenCV 설치 및 설정, IplImage 구조체 사용 방법, OpenCV 라이브러리 사용 방법, ImageTool 프로젝트에서 OpenCV 사용하기, OpenCV 변환 함수 테스트에 대해서 알아본다.

A2. 침입자 감시 시스템 만들기
이 장에서는 OpenCV 에서 지원하는 웹 카메라 입력 기능을 이용하여 간단한 침입자 감시 프로그램을 만드는 방법에 대하여 설명한다. OpenCV 라이브러리를 이용하면 웹 카메라로부터 IplImage 타입의 영상을 얻어올 수 있다. 이를 CDib 클래스 형태로 바꾸고, 이 책에서 배운 다양한 영상 처리 알고리즘을 이용하여 침입자 감시 프로그램을 만들어보자.

출판사 리뷰

난해한 이론을 명쾌하게 풀어내고 실습으로 숙달한다!

이 책은 영상 처리 분야에 대한 이해와 Visual C++ 프로그래밍 기법을 이용한 구현을 통해 영상 처리 기초부터 알고리즘과 고급 프로그래밍 방법까지를 명쾌하게 설명할 뿐만 아니라 원리+실습이라는 학습 패턴을 이용해 학습에 효율성을 높일 수 있게 구성되었다.
막연하게 수학 및 신호처리에 대한 지식을 요구하는 어려운 학문이라고 생각했다면 이 책이 여러분을 쉽고 깊이 있게 영상 처리 프로그래밍의 세계로 이끌어줄 것이다.

【주요내용】
BMP 파일의 이해 : 실제 BMP 파일을 분석하고 처리하는 방법
CDib 클래스 만들기 : DIB를 처리하는 클래스를 만드는 방법
영상 처리 프로그램 틀 : CDib 클래스를 이용하여 영상 처리 프로그램의 틀을 만드는 방법
화질 향상 기법 : 영상의 반전, 밝기 및 명암비 조절, 감마 보정, 그리고 히스토그램 설명
영상의 산술 및 논리 연산 : 산술 및 논리 연산으로 화질을 향상시키거나 분석하는 방법과 영상을 비트 평면으로 분할하는 방법
다양한 공간적 필터링 기법 : 필터링의 의미와, 어떤 결과 영상을 생성하는지를 설명
영상의 기하학적 변환 : 이동 변환, 크기 변환, 회전 변환, 대칭 변환과 보간법이 결과 화질에 미치는 영향을 설명
주파수 공간에서의 영상 처리 : 이산 푸리에 변환과 고속 이산 푸리에 변환 알고리즘 그리고 주파수 공간에서 저역 통과 필터와 고역 통과 필터를 설명
영상의 특정값 추출 방법 : 경계선 정보를 찾아내는 방법과 허프 변환 그리고 해리스 코너 포인트 검출 방법을 설명
컬러 영상 처리 : 다양한 색 표현 모델과 서로 변환하는 방법 그리고 경계선 검출 및 히스토그램 균등화를 수행하는 방법
영상 분할 : 이진화하는 방법과 레이블링 기법 그리고 외곽선 추적 방법
모폴로지 연산 : 이진 영상과 그레이스케일 영상에서 사용되는 모폴로지 연산을 설명
모양 기술자 : 외곽선 기반의 푸리에 기술자와 영역 기반의 불변 모멘트를 설명
동영상 처리 : AVI 파일과 재생 방법 그리고 동영상에서 움직임 정보를 추출하는 방법
침입자 감시 시스템 : OpenCV에서 지원하는 웹 카메라 입력 기능으로 침입자 감시 프로그램을 만드는 방법

추천평

이 책은 딱딱한 이론서도 아니고 무작정 따라 하기 식의 코드집도 아닙니다. 자칫 어렵고 지루할 수 있는 수학적 이론들을 누구나 이해할 수 있는 용어로 쉽게 풀어서 설명하고 있으며, 친절한 설명을 곁들인 실제적인 예제 코드를 통해 체득할 수 있게 하고 있습니다. 이론과 실습의 적절한 조화를 통해 원리를 이해하고 실습으로 숙달함으로써 초보자를 자연스럽게 영상 처리 전문가로 이끌어 주는 책입니다.
- 김용성(영상공학 박사 ,『Visual C++ 6 완벽가이드』저자) 추천의 글 중에서

리뷰/한줄평3

리뷰

9.4 리뷰 총점

한줄평

첫번째 한줄평을 남겨주세요.