[OPENCV] OpenCV 설치 더 이상 실패하지 말자.
?
OpenCV 가 버전이 올라가면서 사용법이 완전히 다르다.
제공되는 build 는 x64 버전이라서 x86 을 프로그래밍 하는 분은
build 를 직접해야 한다고 한다.
중국 책들의 수준이 이정도이다.
국내 책을 쓰시는 저자 분들은 참고하자.
https://github.com/QianMo/OpenCV3-Intro-Book-Src
압축을 풀고 소스코드의 중국어 간체가 깨져 보인다.
win7 인 경우 그림과 같이 바꾸면 된다.
사용 후에는 다시 대한민국으로 설정해야 한다.
win10 인 경우
시작 버튼 옆 검색에서 제어판을 검색해서 열린 창에서 설정해야 한다.
글씨가 잘 보인다.
이것이 유니코드를 써야 하는 이유다.
2.x으로 일단은 시작하세요.
3.x도 바로 실행해보니 됩니다.
포함 디렉토리에 추가
E:\d\2\opencv\build\include
라이브러리 디렉토리에 추가
E:\d\2\opencv\build\x86\vc10\lib
opencv-2.3.1??-vc14.exe
버번을 받아서 설치하거나
아래 231.lib 부분을 설치한 버전으로 일치 시키자.
추가 종속성 추가
opencv_calib3d231.lib
opencv_calib3d231d.lib
opencv_contrib231d.lib
opencv_core231d.lib
opencv_features2d231d.lib
opencv_flann231d.lib
opencv_gpu231d.lib
opencv_haartraining_engined.lib
opencv_highgui231d.lib
opencv_imgproc231d.lib
opencv_legacy231d.lib
opencv_ml231d.lib
opencv_objdetect231d.lib
opencv_ts231d.lib
opencv_video231d.lib
opencv_calib3d241.lib
opencv_calib3d241d.lib
opencv_contrib241d.lib
opencv_core241d.lib
opencv_features2d241d.lib
opencv_flann241d.lib
opencv_gpu241d.lib
opencv_haartraining_engined.lib
opencv_highgui241d.lib
opencv_imgproc241d.lib
opencv_legacy241d.lib
opencv_ml241d.lib
opencv_objdetect241d.lib
opencv_ts241d.lib
opencv_video241d.lib
2.4.1.3. 에는
opencv_haartraining_engined.lib파일은 없다.
opencv_calib3d2413.lib
opencv_calib3d2413d.lib
opencv_contrib2413d.lib
opencv_core2413d.lib
opencv_features2d2413d.lib
opencv_flann2413d.lib
opencv_gpu2413d.lib
opencv_highgui2413d.lib
opencv_imgproc2413d.lib
opencv_legacy2413d.lib
opencv_ml2413d.lib
opencv_objdetect2413d.lib
opencv_ts2413d.lib
opencv_video2413d.lib
opencv 3.0xx 이 좋은게 파일 한개로 된다.
opencv_world343d.lib 이런 파일 한개...
책 목차 첨부
[라이트 잉크 작업] "OpenCV3 프로그래밍 항목"내용 간략한 소개 및 에라타 및 지원 소스 코드 다운로드
거의 1 년 동안의 강수량과 요약 후에 "OpenCV3 프로그래밍 소개"라는 책이 마침내 만났습니다.
최근에는 많은 소규모 파트너가이 책의 폴더를 블로그에 게시하여 모든 사람이이 책의 내용을 더 잘 이해할 수 있도록 가벼운 잉크 제안을 전자 메일로 보냈습니다. 사실 최근의 빛 잉크가 3D ARPG 게임 그냥 안드로이드 응용 프로그램 플랫폼에 도착 개별 크로스 플랫폼의 비트 바쁜, 독립적 인 개발이 주요 애플리케이션 상점 선반은 필요 플러스 학문적 가지의 다양한 그렇게되어 이제 발급 될 때까지이 문서 .
이제 OpenCV Programming 시작하기 책의 표지를 살펴 보겠습니다.
첫 번째 책인 Dream-Distance와 마찬가지로이 책의 표지는 여전히 잉크의 원형과 색조입니다. 이미지 처리 기능으로 표지 이미지 게시 :
좋아, 사업에 나가자. 이 책의 내용을 살펴 보겠습니다.
I. 머리말
컴퓨터 비전은 최근 몇 년 동안 성숙한 분야입니다. 강력하고 저렴한 컴퓨팅 장치가 등장하면서 복잡한 이미지 응용 프로그램을 만드는 일이 그 어느 때보 다 쉬워졌습니다. OpenCV는 컴퓨터 비전 분야에서 중요한 역할을하며 이미지 처리 및 컴퓨터 비전을위한 많은 일반적인 알고리즘을 구현하는 오픈 소스 배포를 기반으로하는 크로스 플랫폼 컴퓨터 비전 라이브러리입니다.OpenCV는 1999 년 설립 된 이래로 컴퓨터 비전 분야의 학자 및 개발자가 선택하는 도구로 간주되어 왔으며 컴퓨터 비전 분야에서 가장 강력한 연구 도구 중 하나가되었습니다.
OpenCV는 원래 Intel 팀이 개발했습니다. 일련의 베타 버전이 릴리스 된 후 OpenCV 1.0의 공식 버전이 마침내 2006 년 10 월 19 일에 릴리스되었습니다.
2009 년 10 월 1 일에 OpenCV2.0이 나왔습니다. 새로운 C ++ 인터페이스가 도입되고 OpenCV의 기능이 확장되었습니다. 2.0 시대에, OpenCV의는 iOS 및에서 Andriod 등의 새로운 플랫폼 지원을 추가 CUDA 및 OpenCL을 통해 GPU 가속을 구현, Github에서와 Buildbot을 기반으로 파이썬과 자바 사용자 인터페이스, 예술의 전체 지속적인 통합 시스템을 구축을 제공합니다 따라서 안정적이고 사용하기 쉬운 OpenCV 2.4.x가 전 세계 여러 회사 및 학교에서 채택되었습니다.
2014 년 8 월 21 일 OpenCV3.0Alpha는 컴퓨터 비전의 새로운 시대의 도래를 알리는 새로운 프로젝트 아키텍처 변경을 가져 왔다고 발표했습니다. 그리고 다른 대규모 프로젝트는, 같은 OpenCV3는 전체 통합 아키텍처를 포기 몸이 더 안정적이며, 추가 라이브러리가 급속한 발전과 반복을 유지하기 위해 더 유연 할 수 있도록 플러그인의 형태로 커널 + 아키텍처를 사용합니다.
CSDN에서이 책은 블로그 기사의 "OpenCV의] [초보자 튜토리얼"시리즈라는 연재 그는 자신의 첫 번째 2014년 2월 24일 이후했다 광범위한 관심과 팬들 OpenCV의 누적 독서의 지원을 발표 그 금액은 40 만 명을 초과했습니다. 많은 독자는이 내용이 책으로 결합되고 다른 많은 새로운 내용이 추가 될 것을 강력히 희망합니다. 그래서 반년 반 동안 펜과 진리가 생기면이 책이 당신의 손에 태어났습니다.
로 엔트리 레벨 OpenCV의 프로그래밍 자료, 프로그램 코드 책 특정 코어, 상관 함수의 highgui, improc의 새로운 OpenCV의 코어에 메인 라인의 시선과 feature2d 이러한 네 가지 구성 요소, 데이터 구조, 클래스, 출발점으로, 특정 새로운 버전 번호 인 OpenCV는 다양한 문제를 겪고 자세한 전투 코드 참조를 제공 할 것이라고 설명합니다. 이 책을 쓰기의 원래 의도는 다른 사용자의 많은 솜씨 세계에서 새로운 OpenCV의의 대중화를 촉진하기 위해, 차이 OpenCV2 및 OpenCV3 많은 세부 사항을 이해하기 위해 C의 새 버전 ++ 인터페이스를 사용하여 OpenCV2 또는 OpenCV3를 사용할 수 있도록하는 것입니다.
둘째, 콘텐츠 배열
이 책은 네 부분과 챕터로 나누어 져 있습니다. 내용 목록은 다음과 같습니다.
1 장 OpenCV : OpenCV 의 주변 개념을 소개하고 OpenCV의 기본 아키텍처를 분석합니다. OpenCV3의 새로운 기능을 설명하십시오. OpenCV의 다운로드, 설치 및 구성 프로세스에 중점을 둡니다. 구성을 마치고 공식적으로 OpenCV의 매력에 감사 드리며 4 개의 OpenCV 이미지 처리 애플릿에 연락하여 OpenCV를 사용하여 비디오를 조작하고 카메라를 호출하는 방법을 배웁니다.
2 장인지 준비 과정 출발 전 : OpenCV 공식 루틴에 대한 학습 및 평가, OpenCV 소스 코드 컴파일 방법 설명, 주변 개념 이해.
제 3 장 HighGui 예비 그래픽 사용자 인터페이스 : 파일 특정 분석 이미지, 디스플레이, 출력을로드, 생성 및 사용 방법에 논평 OpenCV의 슬라이더는 마우스와 상호 작용합니다.
4 장 OpenCV 데이터 구조 및 기본 그리기 : OpenCV에서 자주 사용되는 데이터 구조 및 기본 그리기 작업을 설명합니다.
제 코어 조립체 광고주 5. 일부 고급 기술 도시 코어 모듈, 이러한 이미지의 픽셀의 동작 등은 화상 콘트라스트 및 밝기를 조절 혼합 이미지, 색 분리 채널, 이산 푸리에 변환, 입출력 XML 및 YAML 파일.
6 장 이미지 처리 : OpenCV를 사용한 이미지 처리를위한 다양한 방법을 배우십시오. - 팽창 및 침식 두가지 기본 형태 학적 연산; 메디안 필터링 양자 필터링은 선형 필터링 속하는 가우시안 필터, 비선형 필터링 필터링 평균 필터링 블록을 포함하는 진보 된 형태 필터링 동작 5 종류 - 개방 조작 , 폐쇄 형 작업, 형태 그라디언트, 탑 모자 및 검은 모자, 홍수 채우기 알고리즘, 이미지 피라미드, 이미지 크기 조정, 임계 설정 등이 있습니다.
7 장 이미지 변환 : 여러 유형의 이미지 변환 방법을 설명하십시오. OpenCV를 사용하여 가장자리 감지를위한 canny 연산자, sobel 연산자, Laplace 연산자 및 scharr 필터, Hough 선 변형, Hough circle 변환, 이미지 특성 추출을위한 재 매핑 및 아핀 변환 및 히스토그램 등화가 포함됩니다. 돌리시오.
제 8 장 이미지 이미지 윤곽선 절단 수리 : 바퀴를 찾아 윤곽으로 둘러싸인 다각형을 사용하여 이미지의 순간을 계산하는 오브젝트의 볼록 선체를 찾는 방법을 윤곽을 그리는 방법을 보여줍니다. 유역 알고리즘 및 이미지 복구 작업의 구현도 소개됩니다.
9 장 히스토그램 및 매칭 : 이미지 히스토그램뿐만 아니라 히스토그램 정렬, 역 투영 및 템플릿 매칭 기술과 관련된 프로그래밍 기술을 설명하십시오.
10 장 코너 감지 : Harris 코너 감지 및 Shi-Tomasi 코너 감지 및 하위 픽셀 코너 감지 방법을 설명하십시오.
11 장 기능 탐지 및 일치 : OpenCV2를 사용하여 SURF, SIFT 및 ORB 기능 탐지 방법을 설명 및 구현하고 FLANN 기능 일치를 기반으로 알려진 객체를 찾기 위해 동 위상 매핑을 사용합니다.
셋째,이 책을 읽는 독자들에게 적합합니다.
- 컴퓨터 비전 및 관련 분야의 학생과 교사를 대상으로합니다.
이 책은 컴퓨터 비전 분야에서 상세한 코드를 바라 보는 유익한 내용으로 컴퓨터 학습 이론, 논문 작성, 졸업 디자인, OpenCV를 통한 과학 연구 프로젝트 완료 등을 도와줍니다. 동시에,이 책은 대학 컴퓨터 비전 과정의 교과서로 적합합니다.
- OpenCV에 처음 접촉하고 특정 C / C ++ 프로그래밍 기초를 가지고있는 연구원
고속 입력을위한 새로운 OpenCV 표준 프로그래밍 자습서로서이 책에는 간단한 C / C ++ 프로그래밍 언어 기반이 필요합니다. 이미 C / C ++ 프로그래밍 기초가 있고 컴퓨터 비전에 관심이 있다고 가정 할 때,이 책은 당신을위한 책입니다.
- 이미 OpenCV1.0 프로그래밍 경험을 가지고 있으며 컴퓨터 비전 전문가 분야에서 OpenCV2 프로그래밍, OpenCV3 프로그래밍을 이해하고 시작하고자합니다.
이전에 OpenCV 1.0을 사용했거나 OpenCV의 고전적인 OpenCV 1.0 시대를 연구했다고 가정 해 보겠습니다.이 책은 여러분에게 더 따뜻한 느낌을 줄 것입니다. 새로운 OpenCV에는 더 강력하고 편리한 기능이 많이 포함되어있어 적은 비용으로 더 많은 작업을 수행 할 수 있습니다.
- 새로운 OpenCV 인터페이스 책을 갖고 싶어하는 컴퓨터 비전 애호가
이 책에서는 OpenCV2 (OpenCV3 포함) 이후 자주 사용되는 클래스와 함수를 구체적으로 설명하고 부록에 "책 핵심 기능 목록"을 검색을 위해 제공합니다. 이 책에서 사용해야하는 함수, 데이터 구조 및 클래스에 대한 고속 액세스를 찾을 수 있습니다.
- OpenCV2, OpenCV3 데모 샘플 코드의 특정 시선의 큰 금액을 갖고 싶어 OpenCV 애호가
이 책은 OpenCV2 버전의 샘플 프로그램 소스 코드, 21 개의 보너스 데모 샘플 프로그램 소스 코드, OpenCV3 버전의 95 권의 책 본선 데모 샘플 프로그램 소스 코드의 메인 라인 95 권을 포함합니다. OpenCV2, OpenCV3 코드의 두 가지 버전을 별도로 다운로드 할 수 있습니다. 이러한 프로그램 코드는 구체적이고 체계적으로 바라 보게되며, 프로그램 효과의 고속 시청을 위해 독립적으로 실행할 수있는 exe를 제공하여 쉽게보고 검색 할 수 있습니다. 연구 및 연구 속도를 높이기 위해 대규모 데모 샘플 프로그램에서 필요한 참조 코드를 찾을 수 있습니다.
- 이미지 프로세싱 및 컴퓨터 비전 분야의 아마추어
바다는 넓고 물고기는 날고있다. 컴퓨터 비전 분야의 보물은 당신이 탐험 할 수있는 곳입니다.
- 오픈 소스 프로젝트 매니아
OpenCV는 연구를위한 수백만 줄의 소스 코드가 포함 된 완전히 무료로 개발 된 컴퓨터 비전 코드 라이브러리입니다. 이 책은 멘토와 친구가되어 연구를 안내 할 것입니다.
넷째, 서적 폴더
고속 OpenCV 1의 첫 번째 부분
1 장 OpenCV 3
1.1 OpenCV 주변 개념 인식 4
1.1.1 화상 처리, 컴퓨터 비전 및 OpenCV4
1.1.2 OpenCV 4 개요
1.1.3 근원과 발달 5
1.1.4 응용 프로그램 개요 6
1.2 OpenCV 기본 아키텍처 분석 7
1.3 OpenCV3는 무엇을 가져 옵니까?
1.3.1 프로젝트 구조의 변경 11
1.3.2 OpenCV2 코드를 OpenCV3 오류 12로 업그레이드하기위한 몇 가지 전략
1.4 OpenCV 다운로드, 설치 및 구성 14
1.4.1 준비 : 통합 개발 환경 다운로드 및 설치하기 14
1.4.2 1 단계 : OpenCVSDK 다운로드 및 설치 15
1.4.3 2 단계 : 환경 변수 구성 16
1.4.4 3 단계 : 프로젝트에 폴더 구성 포함 (포함) 17
1.4.5 4 단계 : 프로젝트 라이브러리 (lib) 폴더 구성 21
1.4.6 5 단계 : 라이브러리 구성 링크 22
1.4.7 6 단계 : Windows 폴더에서 OpenCV Dynamic Link 라이브러리 추가 25
1.4.8 7 단계 : 최종 테스트 26
1.4.9 가능한 문제 및 해결 방법 27
1.5 고속 OpenCV 이미지 처리 28
1.5.1 첫 번째 프로그램 : 이미지 디스플레이 29
1.5.2 두 번째 절차 : 이미지 부식 30
1.5.3 세 번째 절차 : 이미지 번짐 31
1.5.4 넷째 프로그램 : canny edge detection 32
1.6 OpenCV 비디오 작동 기본 사항 34
1.6.1 비디오 읽기 및 재생 34
1.6.2 이미지 캡처를위한 카메라 호출 35
1.7이 장의 요약 38
제 2 장 출발 전의인지 준비 39
2.1 OpenCV 공식적인 일상지도 및 감사 40
2.1.1 색 대상 추적 : Camshift41
2.1.2 옵티컬 플로우 : 옵티컬 플로우 42
2.1.3 포인트 추적 : lkdemo 43
2.1.4 얼굴 인식 : objectDetection43
2.1.5 지원 벡터 시스템 부팅 44
2.2 오픈 소스의 매력 : OpenCV 소스 코드 컴파일 45
2.2.1 CMake 45 다운로드 및 설치
2.2.2 CMake를 사용하여 OpenCV 소스 프로젝트 솔루션 생성하기 46
2.2.3 OpenCV 소스 코드 컴파일 50
2.3 "opencv.hpp"헤더 파일 인식 53
2.4 명명 규칙 54
2.5 argc 및 argv 매개 변수가 56을 혼동시킵니다.
2.5.1 주 함수 56의 argc와 argv에 대한 초기 지식
2.5.2 argc, argv 57의 구체적인 의미
2.5.3 Visual Studio 58의 주요 기능에 대한 설명
2.5.4 요약 59
2.6 형식 출력 함수 printf () 분석 59
2.6.1 형식 출력 : printf () 함수 59
2.6.2 데모 샘플 프로그램 : printf 함수 사용법 데모보기 60
2.7 스마트 디스플레이 현재 OpenCV 버전 번호 61
2.8이 장의 요약 61
3 장 HighGUI 그래픽 사용자 인터페이스 사전 63
3.1 파일로 이미지로드, 표시 및 출력 64
3.1.1 OpenCV 네임 스페이스 64
3.1.2 매트 종류 분석 64
3.1.3 이미지 로딩 및 디스플레이 개요 65
3.1.4 이미지로드 : imread () 함수 65
3.1.5 이미지 표시 : imshow () 함수 66
3.1.6 InputArray 유형 정보 67
3.1.7 폼 만들기 : namedWindow () 함수 67
3.1.8 이미지를 파일로 출력 : imwrite () 함수 68
3.1.9 통합 데모 샘플 프로그램 : 이미지로드, 표시 및 출력 70
3.2 슬라이더 생성 및 사용 73
3.2.1 슬라이더 생성 : createTrackbar () 함수 73
3.2.2 현재 트랙 막대의 위치 얻기 : getTrackbarPos () function 76
3.3 마우스 조작 76
3.4이 장의 요약 80
코어 구성 요소 (83)의 제 2 부분
4 장 OpenCV 데이터 구조 및 기본 도면 85
4.1 기본 이미지 컨테이너 매트 86
4.1.1 디지털 이미지 저장 개요 86
4.1.2 매트 구조의 사용 86
4.1.3 픽셀 값 저장 방법 88
4.1.4 명시 적으로 매트 객체를 작성하는 7 가지 메소드 89
4.1.5 OpenCV 91의 형식화 된 출력 방법
4.1.6 자주 사용되는 기타 데이터 구조 출력 94
4.1.7 데모 샘플 프로그램 : 기본 이미지 컨테이너 매트 클래스 95 사용
4.2 데이터 구조와 함수의 빈번한 사용 95
4.2.1 포인트 표현 : 포인트 클래스 96
4.2.2 색상 표현 : 스칼라 클래스 96
4.2.3 크기의 표현 : 크기 클래스 96
4.2.4 직사각형 표현 : Rect 클래스 97
4.2.5 색 공간 변환 : cvtColor () 함수 98
4.2.6 자주 사용되는 기타 지식 항목 100
4.3 기본 그래픽 그리기 100
4.3.1 DrawEllipse () 함수 작성하기 101
4.3.2 DrawFilledCircle () 함수 작성하기 102
4.3.3 DrawPolygon () 함수 작성하기 102
4.3.4 DrawLine () 함수 작성하기 103
4.3.5 주요 기능이 작성되었습니다 104
4.4이 장의 요약 106
5 장 핵심 구성 요소 고급 107
5.1 이미지의 픽셀 액세스 108
5.1.1 이미지가 메모리에 저장되는 방법 108
5.1.2 색 공간 감소 108
5.1.3 LUT 기능 : 업그레이드 가능한 작동 확인 109
5.1.4 타이밍 기능 110
5.1.5 이미지의 픽셀에 액세스하는 세 가지 유형의 메소드 110
5.1.6 데모 샘플 프로그램 114
5.2 ROI 지역 이미지 오버레이 및 이미지 블렌딩 114
5.2.1 관심 영역 : ROI 115
5.2.2 선형 혼합 작동 116
5.2.3 가중치 가중치 계산 : addWeighted () 함수 117
5.2.4 포괄적 인 데모 예제 : 0 기본 이미지 혼합 120
5.3 별도의 컬러 채널, 다중 채널 이미지 블렌딩 125
5.3.1 채널 분리 : split () 함수 125
5.3.2 채널 병합 : merge () 함수 126
5.3.3 데모 샘플 프로그램 : 다중 채널 이미지 믹싱 127
5.4 이미지 대비 및 밝기 조정 131
5.4.1 이론적 근거 131
5.4.2 이미지의 픽셀 액세스 131
5.4.3 데모 샘플 프로그램 : 이미지 대비, 밝기 값 조정 132
5.5 이산 퓨리에 변환 135
5.5.1 이산 푸리에 변환의 원리 135
5.5.2 dft () 함수 특정 설명 136
5.5.3 반환 DFT 최적 크기 : getOptimalDFTSize () 함수 137
5.5.4 이미지 경계 확장 : copyMakeBorder () 함수 137
5.5.5 2 차원 벡터의 크기 계산 : magnitude () 함수 138
5.5.6 자연 대수 계산 : log () 함수 138
5.5.7 행렬 정규화 : 정규화 () 함수 138
5.5.8 데모 샘플 프로그램 : 이산 푸리에 변환 139
5.6 XML 및 YAML 파일 입력 및 출력 144
5.6.1 XML 및 YAML 파일 소개 144
5.6.2 FileStorage 클래스 작업 파일 사용 가이드 144
5.6.3 데모 샘플 프로그램 : XML 및 YAML 파일 작성 147
5.6.4 데모 샘플 프로그램 : XML 및 YAML 파일 읽기 148
5.7이 장의 요약 150
세 번째 부분은 imgproc 구성 요소를 마스터합니다 (151).
6 장 이미지 처리 153
6.1 선형 필터링 : 블록 필터링, 평균 필터링, 가우시안 필터링 154
6.1.1 매끄럽게하기 154
6.1.2 이미지 필터링 및 필터 154
6.1.3 선형 필터에 대한 간략한 소개 155
6.1.4 필터링 및 흐리게하기 155
6.1.5 이웃 연산자와 선형 이웃 필터링 155
6.1.6 상자 필터링 (boxFilter) 156
6.1.7 평균 필터링 157
6.1.8 가우시안 필터 159
6.1.9 선형 필터링과 관련된 OpenCV 소스 코드의 분석 160
6.1.10 OpenCV 164에서 GaussianBlur 함수의 소스 코드 분석
6.1.11 선형 필터 코어 API 함수 165
6.1.12 이미지 선형 필터링 포괄적 인 데모 샘플 170
6.2 비선형 필터링 : 중간 필터링, 양측 필터링 175
6.2.1 비선형 필터링 개요 175
6.2.2 중앙 필터링 175
6.2.3 쌍방향 필터링 177
6.2.4 비선형 필터 관련 핵심 API 함수 178
6.2.5 OpenCV 181의 5 가지 이미지 필터링 포괄적 인 데모 예제
6.3 형태 학적 필터링 (1) : 부식과 팽창 187
6.3.1 형태 학적 개요 187
6.3.2 확장 188
6.3.3 부식 189
6.3.4 관련 OpenCV 소스 코드 분석 추적 성 190
6.3.5 관련 핵심 API 함수 해석 191
6.3.6 포괄적 인 논증보기 : 부식 및 확장 195
6.4 형태 학적 필터링 (2) : 개방 조작, 폐쇄 작동, 형태 그라디언트, 뚜껑, 검은 모자 198
6.4.1 개방 작업 199
6.4.2 폐쇄 된 작업 200
6.4.3 형태 그라디언트 200
6.4.4 상부 캡 (201)
6.4.5 블랙 햇 202
6.4.6 형태 필터링 OpenCV 소스 코드 분석 추적 성 203
6.4.7 핵심 API 함수 : morphologyEx () 205
6.4.8 다양한 형태의 연산의 사용 예제 206
6.4.9 포괄적 인 데모의 예 : 형태 학적 필터링 208
6.5 플러딩 채우기 214
홍수 채우기의 정의 6.5.1
6.5.2 범람 방법의 기본 아이디어 214
6.5.3 flood fill 알고리즘 구현하기 : floodFill function 214
6.5.4 포괄적 인 시범 예 : 물로 채워짐 216
6.6 이미지 피라미드 및 이미지 크기 확대 / 축소 223
6.6.1 소개 223
6.6.2 이미지 피라미드에 관하여 223
6.6.3 가우시안 피라미드 225
6.6.4 라플라스 피라미드 226
6.6.5 크기 조정 : resize () 함수 227
6.6.6 이미지 피라미드 관련 API 함수 230
6.6.7 포괄적 인 데모 예제 : 이미지 피라미드 및 그림 크기 확대 / 축소 234
6.7 임계 값 237
6.7.1 고정 임계 값 연산 : 임계 값 () 함수 238
6.7.2 적응 임계 값 작업 : adaptiveThreshold () 함수 239
6.7.3 데모 샘플 프로그램 : 기본 임계 값 작업 240
6.8이 장의 요약 244
7 장 이미지 변환 247
7.1 OpenCV 기반 에지 감지 248
7.1.1 모서리 감지를위한 일반적인 단계 248
7.1.2 canny operator 248
7.1.3 소벨 (Sobel) 연산자 253
7.1.4 라플라스 연산자 256
7.1.5 scharr 필터 259
7.1.6 포괄적 인 데모 예 : 가장자리 감지 262
7.2 허프 변환 267
7.2.1 허프 변환 개요 267
7.2.2 OpenCV 268의 Hough 회선 변환
7.2.3 호프 라인 변환의 원리 268
7.2.4 표준 허프 변환 : HoughLines () 함수 270
7.2.5 누적 확률 Hough transform : HoughLinesP () function 272
7.2.6 허프 원 변환 274
7.2.7 Hough gradient 기법의 원리 275
7.2.8 Hough Gradient Method의 단점 276
7.2.9 Hough Circle 변환 : HoughCircles () 함수 276
7.2.10 포괄적 인 데모 예제 : Hough 변환 278
7.3 재 매핑 281
7.3.1 재 매핑 개념 281
7.3.2 재 매핑 구현 : remap () 함수 282
7.3.3 기본 데모 샘플 프로그램 : 기본 재 매핑 283
7.3.4 통합 데모 샘플 프로그램 : 다중 재 매핑 구현 285
7.4 아핀 변환 289
7.4.1 아핀 변환 이해 289
7.4.2 아핀 변환 방법 290
7.4.3 아핀 변환 수행 : warpAffine () 함수 291
7.4.4 2 차원 회전 변환 행렬 계산 : getRotationMatrix2D () 함수 292
7.4.5 데모 샘플 프로그램 : 아핀 변환 292
7.5 히스토그램 평준화 295
7.5.1 히스토그램 평준화의 개념과 특성 296
7.5.2 히스토그램 등화 구현 : equalizeHist () 함수 297
7.5.3 데모 샘플 프로그램 : 히스토그램 균등화 298
7.6이 장의 요약 300
8 장 이미지 윤곽 및 이미지 절단 수리 303
8.1 개요 찾기 및 그려보기 304
8.1.1 개요 찾기 : findContours () 함수 304
8.1.2 그리기 개요 : drawContours () 함수 305
8.1.3 기본 데모 샘플 프로그램 : 개요 찾기 306
8.1.4 통합 데모 샘플 프로그램 : 개요 찾기 및 그리기
8.2 물체의 convex hull 312를 찾는다.
8.2.1 볼록 선체 312
8.2.2 convex hull 찾기 : convexHull () 함수 313
8.2.3 기본 데모 샘플 프로그램 : 볼록 탐지 기반 313
8.2.4 통합 데모 샘플 프로그램 : 객체의 convex hull 찾기 및 그리기 315
8.3 다각형으로 형상 둘러싸 기 318
8.3.1 바깥 쪽 사각형 경계 반환하기 : boundingRect () 함수 318
8.3.2 최소 경계 사각형 찾기 : minAreaRect () function 318
8.3.3 최소 경계 원 찾기 : minEnclosingCircle () 함수 318
8.3.4 타원으로 2D 점 집합 맞추기 : fitEllipse () 함수 319
8.3.5 폴리곤 커브 접근하기 : approxPolyDP () 함수 319
8.3.6 기본 데모 샘플 프로그램 : 사각형 테두리 만들기 319 봉투 포함
8.3.7 기본 데모 샘플 프로그램 : 윤곽선 주위에 원형 경계선 생성 321
8.3.8 통합 데모 샘플 프로그램 : 다각형 브라케팅 사용 324
8.4 이미지 모멘트 327
8.4.1 모멘트 계산 : 모멘트 () 함수 328
8.4.2 등고선 면적 계산 : contourArea () 함수 328
8.4.3 등고선 길이 계산 : arcLength () 함수 328
8.4.4 통합 데모 샘플 프로그램 : 이미지 윤곽선 모멘트 찾기 및 그리기 329
8.5 유역 알고리즘 333
8.5.1 Watershed 알고리즘 구현 : watershed () 함수 334
8.5.2 통합 데모 샘플 프로그램 : Watershed Algorithm 334
8.6 이미지 패치 338
8.6.1 이미지 패치 적용 : inpaint () 함수 340
8.6.2 통합 데모 샘플 프로그램 : 이미지 패치 341
8.7이 장의 요약 343
제 9 장 히스토그램 및 매칭 345
9.1 이미지 히스토그램 개요 346
9.2 히스토그램의 계산 및 그리기 347
9.2.1 히스토그램 계산 : calcHist () 함수 347
9.2.2 최상의 값 찾기 : minMaxLoc () function 348
9.2.3 데모 샘플 프로그램 : H-S 막대 그래프 그리기 348
9.2.4 데모 샘플 프로그램 : 이미지 계산 및 드로잉 1 차원 히스토그램 350
9.2.5 데모 샘플 프로그램 : RGB 3 색 막대 그래프 그리기 352
9.3 히스토그램 비교 355
9.3.1 제어 히스토그램 : compareHist () 함수 355
9.3.2 데모 샘플 프로그램 : 히스토그램 비교 356
9.4 역 투영 360
9.4.1 소개 360
9.4.2 투영법 작동 방식 360
9.4.3 역 투영 361의 역할
9.4.4 역 투영 결과 361
9.4.5 역 투영 계산 : calcBackProject () 함수 361
9.4.6 채널 복사 : mixChannels () 함수 362
9.4.7 합성 절차 : 역 투영 363
9.5 템플릿 매칭 367
9.5.1 템플릿 매칭의 개념과 원리 367
9.5.2 템플릿 매칭 구현 : matchTemplate () function 367
9.5.3 포괄적 인 데모 예제 : 템플릿 매칭 369
9.6 요약 373
네 번째 부분은 feature2d 구성 요소 375로 깊숙이 들어가 있습니다.
제 10 장 코너 감지 377
10.1 해리스 코너 탐지 378
10.1.1 관심 분야 및 관심 분야 378
10.1.2 코너 감지 378
10.1.3 해리스 구석 감지 379
10.1.4 Harris Corner Detection 구현 : cornerHarris () 함수 379
10.1.5 포괄적 인 데모 예제 : Harris Corner 탐지 및 드로잉 381
10.2 Shi-Tomasi 코너 탐지 384
Shi-Tomasi 코너 탐지의 개관 10.2.1 개관
10.2.2 이미지의 강한 구석 점 결정 : goodFeaturesToTrack () function 384
10.2.3 포괄적 인 데모 예 : Shi-Tomasi Corner Detection 385
10.3 서브 픽셀 코너 검출 388
10.3.1 배경 개요 388
10.3.2 서브 픽셀 모서리 찾기 : cornerSubPix () 함수 389
10.3.3 포괄적 인 데모 예 : 서브 픽셀 모서리 탐지 389
10.4이 장의 요약 392
제 11 장 기능 탐지 및 대응 395
11.1 서프 기능 지점 탐지 396
11.1.1 SURF 알고리즘 개요 396
11.1.2 SURF 알고리즘의 원리 396
11.1.3 SURF 클래스 관련 OpenCV 소스 코드 분석 400
11.1.4 키 포인트 그리기 : drawKeypoints () 함수 401
11.1.5 KeyPoint Class 402
11.1.6 데모 샘플 프로그램 : SURF 피쳐 포인트 검출 402
11.2 서프 피쳐 추출 405
11.2.1 매칭 점 그리기 : drawMatches () 함수 405
11.2.2 BruteForceMatcher 클래스 소스 분석 407
11.2.3 데모 샘플 프로그램 : SURF 피쳐 추출 408
11.3 FLANN 410을 사용한 기능 지점 일치
FlannBasedMatcher 클래스의 간단한 분석 11.3.1
11.3.2 가장 일치하는 것을 찾으시오 : DescriptorMatcher :: match method 411
11.3.3 데모 샘플 프로그램 : FLANN 411을 사용한 기능 지점 일치
11.3.4 통합 데모 샘플 프로그램 : 설명 및 주요 요점 일치를 위해 SURF와 결합 된 FLANN
11.3.5 포괄적 인 시범 샘플 프로그램 : 주요 요점 설명 및 추출을위한 SIFT 및 폭력적 일치 417
11.4 알려진 객체 찾기
11.4.1 원근감 변환 찾기 : findHomography () 함수 421
11.4.2 perspective 매트릭스 변환 수행 : perspectiveTransform () 함수 421
11.4.3 데모 샘플 프로그램 : 알려진 객체 찾기 422
11.5 ORB 기능 추출 425
11.5.1 ORB 알고리즘 개요 425
11.5.2 관련 개념인지 425
11.5.3 ORB 클래스 관련 소스 코드의 간단한 분석 426
11.5.4 데모 샘플 프로그램 : ORB 알고리즘은 내러티브와 매치를 기술한다.
11.6이 장의 요약 430
부록 433
A1 지원 데모 샘플 프로그램 목록 433
도서에 포함 된 추가 프로그램 목록 A2 436
A3 책 핵심 기능 목록 439
A4 매트 클래스 기능 목록 442
A4.1 생성자 : Mat :: Mat442
A4.2 소멸자 매트 :: ~ Mat444
A4.3 매트 클래스 멤버 함수 444
주요 참조 447
5. 감사합니다.
먼저 자신의 경력을 도와 주셔서 감사합니다, 항공 우주 내 멘토의 차가운 Xuefei 난징 대학의 교수가, 그녀는 또한 개인적으로이 책의 장을 쓰기에 참여. 석사 학위에는 강사의 강의가 없다고 가정합니다. 저는 OpenCV를 만나지 않을 것이며,이 책은 출판되지 않을 것입니다.
동생의 왕비휘 (Wang Bihui)와 우 송센 (Wu Songsen)이 책의 성실성에 대한 탁월한 공헌을하기 위해이 책의 일부를 쓴 것에 감사를 전합니다.
OpenCV 개발팀이 강력하고 안정적이며 사용하기 쉬운 컴퓨터 오픈 소스 비주얼 라이브러리를 개발하여 지속적으로 유지 관리하고 업데이트하는 데 감사드립니다.
부모님 께 감사 드리며 가족을 열렬하게 대해 감사 드리며 내게 가장 강한 후원자입니다.
나에게 양심의 가책을 안겨준 모닝 선생님, 남경 항공 우주 학 대학 (University of Arnautautics and Astronautics)에 감사드립니다.
이 책을 출판 할 때 도움과 도움을 주신 Nanjing Aeronautics and Astronautics 대학의 Dai Quanchen에게 감사드립니다.
자금 조달 기초 연구 도서 지원을 제공하지 : "고정자 초음파 모터의 자유와 구동 지능형 PTZ 시스템의 핵심 기술 연구의 새로운 싱글 2 개도"국가 자연 과학 재단 청소년 과학 기금 프로젝트 (51205193 어떤 프로젝트 승인) 감사합니다.
Bowen Viewpoint Division의 편집인 인 Chen Xiaomeng과 Ding Yiqiong에게이 책의 출판에 대한 광범위한 연구에 감사드립니다. 저는 전문성과 출판에 대한 엄격한 태도에 깊이 감명 받았습니다.
마지막으로, 블로그에 많은 독자 들께 감사 드리고 싶습니다.이 책에 대한 여러분의 기대와 열정은 저에게이 책을 끝내기위한 동기와 용기를주었습니다.
여섯, 서적 지원 데모 샘플 프로그램 다운로드
이 책의 데모 샘플 프로그램은 원래 OpenCV 2.4.9 (2014 년 8 월 15 일) 버전 번호로 개발되었으며이 초안의 첫 번째 초안은 OpenCV 2.4.9를 기반으로 작성되었습니다. 원고 작성 및 수정 과정에서 OpenCV3.0 알파 (2014 니안 (8) (21) 5 월)과 OpenCV3 베타와 일치하는 (2014 니안 11 11 년 5 월) 발표 2014 년 12 교정 및 개정 과정 (의 책 1 개월),이 책은 같은 시간과 OpenCV3 번호 교과서의 두 가지 버전 OpenCV2 관할 역할을 할 수 있도록 많은 기능이 증가 주로 OpenCV3 OpenCV3에 파도의 꼭대기에 서하기로 결정했다. 이것이이 책에 OpenCV2와 OpenCV3의 두 가지 버전 번호에 대한 데모 샘플 프로그램이있는 이유입니다.
100 개 이상의 두 버전 번호, 구체적인 시선 데모 샘플 프로그램 소스 코드는이 책의 영혼이며, 이제 예제 프로그램의 관련 상황을 보여줄 것입니다 요약은 다음과 같습니다 :
- 이 책은 OpenCV2 버전의 샘플 프로그램 소스 코드, 21 개의 보너스 데모 샘플 프로그램 소스 코드, OpenCV3 버전의 95 권의 책 본선 데모 샘플 프로그램 소스 코드의 메인 라인 95 권을 포함합니다.
- OpenCV2, OpenCV3 코드의 두 가지 버전을 별도로 다운로드 할 수 있습니다.
- 이론적으로 Windows7의 64 웨이 궁극적에서 샘플 프로그램 개발 및 테스트의 OpenCV2 데모 버전, 비주얼 Stuido 2010에서 OpenCV 2.4.9 환경, 실행의 모든 시리즈 컴파일 OpenCV의 2 버전을 지원합니다.
- OpenCV3 데모 샘플 프로그램은 Windows 7 64 비트 Ultimate, Visual Stuido 2010, OpenCV 3.0 베타 환경에서 개발 및 테스트되었으며 이론적으로 발표 된 OpenCV3의 전체 버전을 지원합니다.
- 프로그램의 소스 코드에는 구체적이고 체계적인 시선이 있습니다.
- 프로그램 효과의 고속보기를 위해 독립적으로 실행될 수있는 추가 exe는보기 쉽고 검색 할 수 있습니다.
지원 데모 샘플 코드는 여기에서 다운로드하십시오.
GitHub에서 데모 샘플 코드를 지원하는 "OpenCV3 Programming Starter"를 다운로드하십시오.
Baidu Cloud에서 데모 샘플 코드를 지원하는 "OpenCV3 Programming Getting Started"를 다운로드하십시오.
일곱 정오표에
많은 교정 후에도 가벼운 잉크가 부족하기 때문에 필연적으로이 책은 누락으로 이어질 것입니다. 책 앞에있는 당신이 열심히 책의 실수를 지적하고 코멘트가이 블로그 아래에 있기를 바랍니다.책의 누락은 모든 사람의 의견으로 제안되었으며, 밝은 잉크는주의 깊게 점검되고 수정 될 것입니다. 이 책의 다음 판에 인쇄하려면 더 완벽하고 엄격한 방식으로 모든 사람에게 제시 할 수 있습니다.
"OpenCV3 프로그래밍 항목"2015.3 첫 번째 에라타 문서 다운로드
마지막으로,이 책의 도움으로 새로운 OpenCV를 시작하고 마스터 할 수 있기를 바랍니다.
이 책이이 나라의 새로운 OpenCV와 세계 개발의 인기에 기여하기를 바랍니다.