서브메뉴

본문

OpenCV-Python으로 배우는 영상처리 및 응용
OpenCV-Python으로 배우는 영상처리 및 응용
저자 : 정성환
출판사 : 생능출판사
출판년 : 2020
ISBN : 9788970504414

책소개

이 책은 독자들에게 영상처리의 기본 이론과 응용 분야에서 실제적 도움이 되기를 바라는 마음에서 3개의 부, 12개의 장으로 구성하였다. 각 부로 나눈 이유는 영상처리 이론을 단계적으로 이해하면서, 동시에 OpenCV를 사용해 영상처리 이론을 구현하는 기회를 독자들에게 제공하고자 함이다. 가능하다면 독자들도 실제로 주어진 프로그램 코드를 가지고 구현해 보기를 바란다.
[예스24에서 제공한 정보입니다.]

출판사 서평

마셜 맥루한이 1962년 처음으로 사용한 ‘글로벌 빌리지(global village)’는 세상이 인터넷과 같은 정보통신 기술에 의해 전 세계가 하나의 마을처럼 된다고 했습니다. 2020년은 그런 의미를 넘어서, 코로나-19로 인해 전 세계는 글로벌 빌리지임을 다시 한번 실감하게 하였습니다. 동네에서 한 집에 아픈 사람이 생기면, 동네의 다른 사람들도 어렵습니다. 바이러스는 국경이 없습니다. 전 세계는 한 동네입니다. 크게 보면 한 나라만 잘 살 수 있는 시대는 지나갔습니다. 모든 나라들이 서로 연결되어 세계는 인류 공동체임을 실감하는 시대가 되었습니다.

테니스, 수영, 골프 등 거의 모든 운동에서 기초가 잘 다듬어져야, 더 높은 기술 수준으로 발전해 갈 수 있습니다. 영상처리 분야에서도 카메라에 입력된 영상을 근본적으로 어떻게 처리하는지에 대한 기초적인 이론을 알아보는 것이 매우 중요합니다. 그러나 영상처리의 기본 지식의 이해가 중요함을 알지만, 그냥 이론적으로만 배운다면 실제적 영상처리 문제 해결과는 거리가 있습니다. 그러나 초보자가 배운 영상처리 이론을 당장 실제로 구현하는 것은 또한 어려운 일입니다. 따라서 만일 영상처리의 기본 이론을 쉽게 구현해 볼 수 있는 여건이 만들어진다면, 간단한 문제뿐만 아니라 실제적인 영상처리 관련 문제도 해결 가능성을 높일 수 있습니다.

2019년 8월, 삼성전자는 1억만 화소의 벽을 깨고, 1억 8백만 화소의 모바일 이미지 세서를 개발하였습니다. 이로서 초고해상도 촬영이 가능한 시대가 되었습니다. 영상처리와 관련하여 영상획득을 위한 이미지센서 개발로 인해 영상처리를 위한 최상의 하드웨어 환경은 이제 우리 생활 속에 최상의 성능으로 제공되고 있습니다. 이제는 현실 세계에 존재하는 객체 정보들을 카메라를 통해 디지털 형태로 입력해 어떻게 잘 처리해 사용자들에게 서비스하느냐 하는 문제가 남아 있습니다. 이러한 응용들을 개발하기 위해서는 효과적인 프로그래밍 언어와 툴들이 필요합니다.

최근 개발자 커뮤니티인 Stack Overflow 설문조사에서 파이썬은 최근 3년간 연속적으로 가장 배우기 원하는 언어로 나타났습니다, 또한 파이썬은 프로그램 언어의 인기도를 나타내는 TIOBE Index에서 2000년에는 23위이었으나, 2020년에는 Java, C와 함께 TOP 3 언어로 자리매김을 하였습니다. 이것은 개발자들이 선호하는 프로그램 언어의 최근의 트랜드를 나타내는 것으로, 새롭게 파이썬을 배우기 원한다는 뜻입니다.

OpenCV는 오픈소스 라이브러리로서 공개되어 누구나 사용할 수 있습니다. 영상처리와 관련된 많은 함수들이 이미 구현되어 있습니다. 또한, 파이썬 버전의 OpenCV-python이 제공되어 파이썬 환경에서 다양한 영상처리의 함수들을 누구나 접근하여 사용할 수 있습니다.

이제 영상처리 이론을 쉽게 구현해 볼 수 있는 멋진 환경이 준비되었습니다. 파이썬 환경에서 OpenCV에서 제공하는 영상처리 관련된 많은 함수를 사용해 독자들은 이 책에서 배울 영상처리 이론을 쉽게 구현해 볼 수 있습니다.



이 책의 구성과 특징



이 책은 영상처리의 기본적 이론의 소개와 OpenCV 환경에서 파이썬을 사용해 그 이론을 구현하는 것으로 구성되어 있습니다. 비유를 든다면 한 손에는 설계도면 정보를, 다른 한 손에는 연장이 주어진 건축자의 멋진 건축 환경과 같다고 볼 수 있습니다. 독자들은 이제 이 책을 따라 영상처리 이론을 알아가면서, 연장인 OpenCV-python 라이브러리를 가지고 직접 그 이론을 쉽게 구현하여, 실제적 영상처리의 집을 스스로 지어 볼 수 있는 기회가 주어졌습니다.

이 책은 독자들에게 영상처리의 기본 이론과 응용 분야에서 실제적 도움이 되기를 바라는 마음에서 3개의 부, 12개의 장으로 구성하였습니다.

각 부로 나눈 이유는 영상처리 이론을 단계적으로 이해하면서, 동시에 OpenCV를 사용해 영상처리 이론을 구현하는 기회를 독자들에게 제공하고자 함입니다. 가능하다면 독자들도 실제로 주어진 프로그램 코드를 가지고 구현해 보기를 바랍니다.

만일 이 책을 사용하여 독자들이 차례대로 따라간다면, 영상처리 이론뿐만 아니라 OpenCV의 영상처리 관련 함수의 사용법까지 알 수 있어서, 다음과 같은 효과를 기대할 수 있습니다.



첫째, 영상처리의 기본 이론을 학습할 수 있고, OpenCV의 설치, OpenCV의 구조 등을 파악할 수 있습니다.

둘째, 영상처리 관련 OpenCV의 함수를 이해할 수 있고, 이를 활용하여 영상처리의 기본 이론을 구현해 볼 수 있습니다.

셋째, 영상처리 및 컴퓨터 비전 응용문제들에 대한 팀 프로젝트를 제공해줌으로써 기초적인 실무 경험의 기회를 가질 수 있습니다.
[알라딘에서 제공한 정보입니다.]

목차정보

PART 01 영상처리 개요 및 파이썬, OpenCV 소개

CHAPTER 01 영상처리 개요

1.1 영상처리란 무엇인가?

1.2 영상처리의 수준

1.3 영상처리의 역사

1.4 영상처리 관련 분야

1.5 영상의 형성 과정

1.6 디지털 영상의 표현과 영상처리

1.7 영상처리 응용 분야

단원 요약

연습문제



CHAPTER 02 OpenCV와 파이썬

2.1 OpenCV와 파이썬 개요

2.1.1 OpenCV 소개

2.1.2 파이썬 개요

2.2 파이썬(Python) 설치 및 사용

2.2.1 다운로드 및 설치

2.2.2 IDLE로 파이썬 프로그램 작성하기

2.3 파이참(PyCharm) 설치

2.4 파이참 환경 설정

2.5 OpenCV-Python 및 라이브러리 설치

단원 요약

연습문제



CHAPTER 03 파이썬 둘러보기

3.1 파이썬 자료 구조

3.1.1 상수(constant)와 리터럴(liternal)

3.1.2 변수(variable)

3.1.3 자료 구조 - 리스트, 튜플, 사전(dictionary), 집합(set)

3.2 물리적/논리적 명령행

3.3 연산자

3.3.1 기본 연산자 및 우선순위

3.3.2 슬라이스(:) 연산자

3.4. 기본 명령문

3.4.1 조건문

3.4.2 반복하기

3.4.3 순회하기

3.5 함수와 라이브러리

3.5.1 함수

3.5.2 모듈(Module), 패키지

3.5.3 파이선 내장함수

3.6 넘파이(numpy) 패키지

단원 요약

연습문제



CHAPTER 04 OpenCV 인터페이스

4.1 윈도우 제어

4.2 이벤트 처리 함수

4.2.1 키보드 이벤트 제어

4.2.2 마우스 이벤트 제어

4.2.3 트랙바 이벤트 제어

4.3 그리기 함수

4.3.1 직선 및 사각형 그리기

4.3.2 글자 쓰기

4.3.3 원 그리기

4.3.4 타원 그리기

4.4 영상파일 처리

4.4.1 영상파일 읽기

4.4.2 행렬을 영상파일로 저장

4.5 비디오 처리

4.5.1 카메라에서 프레임 읽기

4.5.2 카메라 속성 설정하기

4.5.3 카메라 프레임을 동영상파일로 저장

4.5.4 동영상파일 읽기

4.6 Matplotlib 패키지 활용

단원 요약

연습문제



CHAPTER 05 OpenCV 기본 배열 연산

5.1 기본 배열(Array) 처리 함수

5.2 채널 처리 함수

5.3 산술 연산 함수

5.3.1 사칙 연산

5.3.2 지수, 로그, 제곱근 관련 함수

5.3.3 논리(비트) 연산 함수

5.4 원소의 절댓값 연산

5.4.1 원소의 최솟값과 최댓값

5.5 통계 관련 함수

5.6 행렬 연산 함수

단원 요약

연습문제



PART 02 영상처리와 OpenCV 함수 활용

CHAPTER 06 화소 처리

6.1 영상 화소의 접근

6.1.1 화소(행렬 원소) 접근

6.2 화소 밝기 변환

6.2.1 그레이 스케일(명암도) 영상

6.2.2 영상의 화소 표현

6.2.3 영상 밝기의 가감 연산

6.2.4 행렬 덧셈 및 곱셈을 이용한 영상 합성

6.2.5 명암 대비

6.3 히스토그램

6.3.1 히스토그램 개념

6.3.2 히스토그램 계산

6.3.3 OpenCV 함수 활용

6.3.4 히스토그램 스트레칭

6.3.5 히스토그램 평활화

6.4 컬러 공간 변환

6.4.1 컬러 및 컬러 공간

6.4.2 RGB 컬러 공간

6.4.3 CMY(K) 컬러 공간

6.4.4 HSI 컬러 공간

6.4.5 기타 컬러 공간

단원 요약

연습문제



CHAPTER 07 영역 처리

7.1 회선(convolution)

7.1.1 공간 영역의 개념과 회선

7.1.2 블러링

7.1.3 샤프닝

7.2 에지 검출

7.2.1 1차 미분 마스크

7.2.2 2차 미분 마스크

7.2.3 캐니 에지 검출

7.3 기타 필터링

7.3.1 최댓값/최솟값 필터링

7.3.2 평균값 필터링

7.3.3 미디언 필터링

7.3.4 가우시안 스무딩 필터링

7.4 모폴로지(morphology)

7.4.1 침식 연산

7.4.2 팽창 연산

7.4.3 열림 연산과 닫힘 연산

단원 요약

연습문제



CHAPTER 08 기하학 처리

8.1 사상

8.2 크기변경 (확대/축소)

8.3 보간

8.3.1 최근접 이웃 보간법

8.3.2 양선형 보간법

8.4 평행 이동

8.5 회전

8.6 행렬 연산을 통한 기하학 변환 ? 어파인 변환

8.7 원근 투시(투영) 변환

단원 요약

연습문제



CHAPTER 09 변환영역 처리

9.1 공간 주파수의 이해

9.2 이산 푸리에 변환

9.3 고속 푸리에 변환

9.4 FFT를 이용한 주파수 영역 필터링

9.4.1 주파수 영역 필터링의 과정

9.4.2 저주파 및 고주파 통과 필터링

9.4.3 버터워스, 가우시안 필터링

9.5 이산 코사인 변환

단원 요약

연습문제



CHAPTER 10 영상 분할 및 특징 처리

10.1 허프 변환

10.1.1 허프 변환의 좌표계

10.1.2 허프 변환의 전체 과정

10.1.3 직선 누적 행렬 구성

10.1.4 누적 행렬의 지역 최댓값 선정

10.1.5 직선(극 좌표) 선택 및 정렬

10.1.6 최종 완성 프로그램

10.1.7 멀티 하네스의 전처리

10.2 코너 검출

10.3 k-최근접 이웃 분류기

10.3.1 k-최근접 이웃 분류기의 이해

10.3.2 k-NN 학습을 위한 데이터 설정 및 ml 클래스 사용

10.3.3 MNIST 데이터 사용

10.3.4 k-NN 응용

10.4 영상 워핑과 영상 모핑

단원 요약

연습문제



PART 03 영상처리 응용 사례

CHAPTER 11 영상처리 응용 사례Ⅰ

11.1 그림판 프로그램

11.1.1 아이콘 배치 및 팔레트 생성

11.1.2 마우스 이벤트의 구현

11.1.3 그리기 구현

11.1.4 명령 함수에 추가 구현

11.2 하르 분류기를 이용한 얼굴 검출 및 성별 분류

11.2.1 하르 기반 분류기

11.2.2 얼굴 검출의 구현

11.2.3 성별 분류 기초

11.2.4 얼굴 기울기 계산 및 보정

11.2.5 입술 영역 및 머리 영역 검출

11.2.6 히스토그램 비교

11.2.7 성별 분류

단원 요약

연습문제



CHAPTER 12 영상처리 응용 사례 II

12.1 동전 인식 프로그램

12.1.1 동전 영상 캡쳐 및 전처리

12.1.2 동전 객체 검출

12.1.3 개별 동전 영상 생성

12.1.4 색상 히스토그램 계산

12.1.5 동전 그룹 분류

12.1.6 개별 동전 종류 결정

12.1.7 최종 동전 계산 프로그램

12.2 SVM을 이용한 차량 번호 검출 프로그램

12.2.1 SVM의 개념

12.2.2 번호판 검출 프로그램 전체 처리 과정

12.2.3 번호판 영상 학습

12.2.4 번호판 후보 영역 검색

12.2.5 번호판 후보 영역 영상 생성

12.2.6 후보 영상의 번호판 반별

12.3 k-NN을 이용한 차량 번호 인식

12.3.1 번호판 문자 인식 프로그램 전체 처리 과정

12.3.2 숫자 및 문자 영상의 학습

12.3.2 번호판 영상 전처리

12.3.3 숫자 및 문자 객체 검색

12.3.4 검출 객체 영상의 숫자 및 문자 인식

단원 요약

연습문제
[알라딘에서 제공한 정보입니다.]