본문 바로가기

컴퓨터비전/라이브러리

(5)
[OpenCV] 특징점 연결 BF Matcher 파노라마 사진을 만들기 위해선 image stitching이라고도 부르는 image registration (영상 정합)을 해야한다. 그리고 이를 위해서는 두 이미지에서 같은 지점을 가리키는 좌표들의 쌍들을 먼저 알아내야 한다. 그래야 변환 행렬을 계산해 registration을 할 수 있기 때문이다. image registration은 보통 아래와 같은 흐름으로 진행된다. 이번 글에서는 matching과정에서 쓰이는 cv2.BFMatcher()함수에 대해 정리하고자 한다. * 목표 이 챕터에서는 1) 우리는 한 이미지에서 특징점을 추출한 것을 다른 것과 어떻게 연결시키는 지를 확인하고, 2) OpenCV에서 Brute-Force matcher와 FLANN Matcher을 사용할 것이다. 1. Brute..
[OpenCV] 특징 디스크립터 검출기 (SIFT, SURF, ORB) 특징점이란 말 그대로 이미지에서 특징이 되는 부분을 의미합니다. 이미지끼리 서로 매칭이 되는지 확인을 할 때 각 이미지에서의 특징이 되는 부분끼리 비교를 합니다. 즉, 이미지 매칭 시 사용하는 것이 바로 특징점입니다. 특징점은 영어로 키 포인트(Keypoints)라고도 합니다. 1. 특징 디스크립터 이 특징점은 객체의 좌표뿐만 아니라 그 주변 픽셀과의 관계에 대한 정보를 가집니다. 그중 가장 대표적인 것이 size와 angle 속성이며, 코너(corner)점인 경우 코너의 경사도와 방향도 속성으로 가집니다. 특징 디스크립터(feature descriptor)란 특징점 주변 픽셀을 일정한 크기의 블록으로 나누어 각 블록에 속한 픽셀의 그레디언트 히스토그램을 계산한 것입니다. 주로 특징점 주변의 밝기, 색상..
Matplotlib를 활용하여 기본 차트 시각화 1. 라인플롯 np.linspace 함수의 사용법은 간단합니다. 인자를 3개를 기본으로 넣어주면 되는데, 구간 시작점, 구간 끝점, 구간 내 숫자 개수 3가지를 순서대로 채워주시면 됩니다. 예를 들어 1과 10 사이를 숫자 100개(끝점 포함)로 채운 예시를 보도록 하겠습니다. import matplotlib.pyplot as plt import numpy as np 여기서 끝점을 포함하지 않고 싶으면 endpoint = False를 추가해주시면 되고, retstep = True를 추가하시면 숫자 사이의 간격이 얼마인지에 대한 값을 같이 반환하게 됩니다. 예제를 간단히 보여드리겠습니다. a = np.linspace(0, 10, 100, endpoint = False, retstep = True) 1-2)..
[Computer Vision] 2. openCV 이미지 읽어오기 및 시각화 1. openCV 이미지 읽어오기 import cv2 ## opencv import matplotlib.pyplot as plt ## matplotlib im_name = 'image.jpeg' image = cv2.imread(im_name) print(image) 이미지 형태로 출력하기 위해서는 plt를 이용하여 출력하면 된다. plt.imshow(image) plt.show() openCV를 사용하여 이미지를 출력할 경우, RGB가 아닌 GBR형태로 출력이 되기 때문에 RGB로 변환하여 주기 위해 아래의 코드를 입력한다. image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) plt.imshow(image_rgb) plt.show() image_gray = cv2..
[Computer Vision] 1. 컴퓨터비전에서 이미지를 읽고 처리하는 라이브러리들 - OpenCV, Matplotlib, PIL, Scikit-image 1) OpenCV 컴퓨터비전을 목적으로 하는 오픈소스 라이브러리 인텔 CPU에서 사용하는 경우 속도 향상을 볼 수 있는 IPP(intel Performance Primitives)를 지원함. IPP(intel Performance Primitives) : 멀티미디어 및 데이터처리 응용 프로그램을 위한 기능의 다중 스레드 소프트웨어 라이브러리 기존 C++에서 사용할 수 있게 구현되었으나, OpenCV-python을 통해 python포팅도 되어있음. 단점 : GPU operation에 대한 지원을, 명시적으로 python과 연계하여 하지 않음. 설치 방법 pip install opencv-python 2) Matplotlib python..