OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝 코드 설명

Computer Vision을 하면 자주 사용하게 되는 OpenCV를 공부해보자!

Introduction

‘OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝’을 공부하면서 한줄 한줄 주석을 달며 공부를 했다.

책에 대한 자세한 내용은 OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝에서 확인할 수 있다.

각 쳅터마다 C++ 과 Python에 대한 코드가 있는데, 우선 C++의 예제로 공부를 했고
Python도 C++과 비슷한 구조로 되어있기 때문에 쉽게 찾아보며 사용할 수 있을 것이다.

각 쳅터에 대한 내용은 아래와 같다.
C++을 클릭하면 각 쳅터에 해당하는 예제 코드로 넘어간다. Line by line으로 주석을 달았다.
Python을 클릭하면 각 쳅터에 해당하는 예제 코드로 넘어간다.

실습은 Ubuntu 18.04, OpenCV 3.4.0, Visual Studio Code에서 진행했다.

3장

  • BasicOP : OpenCV 여러 클래스(Point, Size, Rect, RotatedRect, Range, String) 사용 예제 :
    [C++]
  • InputArrayOP : 입력 인자 자료형 사용 예제 : [C++]
  • MatOP : Mat Class의 생성 및 함수 사용 예제 : [C++], [Python]
  • ScalarOP : Vec Class, Scalar Class 사용 예제 : [C++]

4장

  • Drawing : 이미지에 선,원,다각형 그리기 : [C++], [Python]
  • Keyboard : 키보드 입력 사용 예제 : [C++], [Python]
  • Mouse :마우스 입력 사용 예제 : [C++], [Python]
  • Storage :파일 입출력 사용 예제 : [C++], [Python]
  • Trackbar : Trackbar 사용 예제 : [C++], [Python]
  • Utils : 유용한 함수(Sum, mean, minMaxLoc, normalize, cvRound, 연산 측정, Masking) 사용 예제 : [C++], [Python]
  • Video : 동영상 출력 및 저장 : [C++], [Python]

5장

  • Brightness :이미지 밝기 조절 : [C++], [Python]
  • Contrast : 이미지의 명암비 조절 : [C++], [Python]
  • Histogram : 히스토그램, 히스토그램 스트레칭, 히스토그램 평활화 구현 : [C++], [Python]

6장

  • Arithmetic : 영상의 산술 연산 : [C++], [Python]
  • Logical : 영상의 논리 연산 : [C++], [Python]

7장

  • Blurring :평균 필터 마스크, 가우시안 마스크를 이용한 블러링 : [C++], [Python]
  • Filter : 엠보싱 필터 마스크 구현 : [C++], [Python]
  • Noise : 가우시안 노이즈, Salt & pepper 노이즈 생성 및 제거 : [C++], [Python]
  • Sharpen : Unsharp 마스크 필터 사용 예제 : [C++], [Python]

8장

  • Affine : Affine 변환 사용 예제 : [C++], [Python]
  • Perspective : Perpective 변환 사용 예제 : [C++], [Python]

9장

  • Edges : Sobel Mask, Canny Edge 사용 예제 : [C++], [Python]
  • Hough : Hough line, Hough circle 사용 예제 : [C++], [Python]

10장

  • ColorOP :컬러 영상 다루기 : [C++], [Python]
  • Coloreq :컬러 영상의 히스토그램 평활화 : [C++], [Python]
  • Inrange : inRange()함수를 이용한 특정 색상 영역 분할 : [C++], [Python]
  • Backproj :히스토그램 역투영을 이용한 피부색 영역 검출 : [C++], [Python]

11장

  • Adaptive : 트랙바를 이용한 적응형 이진화 예제 : [C++], [Python]
  • Morphology : 이진 영상의 침식, 팽창, 열기, 닫기 연산 사용 예제 : [C++], [Python]
  • Threshold : 트랙바를 이용한 이진화 예제 : [C++], [Python]

12장

  • Findcts : 외곽선 검출과 그리기, 계층 구조를 사용하는 외곽선 검출과 그리기 : [C++], [Python]
  • Labeling : 라벨링을 이용하여 Bounding Box 그리기 : [C++], [Python]
  • Polygon : Polygon 검출 및 인식 예제 : [C++], [Python]

13장

  • QRCode : 동영상에서 QR 코드 검출 및 해석 예제 : [C++], [Python]
  • Cascade : Cascade 분류기를 이용한 얼굴 및 눈 검출 예제 : [C++], [Python]
  • Hog : HOG Algorithm을 이용한 보행자 검출 예제 : [C++], [Python]
  • Template : 템플릿 매칭 사용 예제 : [C++], [Python]

14장

  • Corners : Harris Corner 및 FAST Corner 검출 예제 : [C++], [Python]
  • Keypoints : ORB Algorithm을 이용한 Key Points 검출 예제 : [C++], [Python]
  • Matching : Key points Matching, 좋은 특징점 선별, Homography 행렬을 이용한 표현 : [C++], [Python]
  • Stitching : 영상 이어 붙이기(Stitching) 예제 : [C++], [Python]

15장

  • Knndigits : kNN 알고리즘을 이용한 필기체 숫자 학습 예제 : [C++], [Python]
  • Knnplane : kNN 알고리즘을 이용한 2차원 점 분류 : [C++], [Python]
  • Svmdigits : SVM 알고리즘을 이용한 필기체 숫자 학습 예제 : [C++], [Python]
  • Svmplane : SVM 알고리즘을 이용한 2차원 점 분류 : [C++], [Python]

댓글남기기