scikit-image 기하 변환과 특징 검출

scikit-image 기하 변환과 특징 검출

기하 변환은 이미지의 위치·크기·회전 등을 바꾸는 작업이고, 특징 검출은 이미지에서 의미 있는 지점이나 형태를 찾는 작업이에요. scikit-image의 transform 모듈과 feature 모듈이 이 역할을 해요.

출처: https://scikit-image.org/docs/stable/auto_examples/transform/index.html

기하 변환

rotate(), resize(), warp() 같은 함수로 이미지를 변환해요. rotate()는 각도만 주면 되고, resize()는 새 크기를 지정해요.

from skimage import transform

rotated = transform.rotate(image, angle=45)
resized = transform.resize(image, (100, 100))

아핀(affine)이나 원근(perspective) 변환은 AffineTransform 같은 클래스를 만들고 warp()에 넘겨요.

from skimage import transform

tf = transform.AffineTransform(scale=(2, 2))
warped = transform.warp(image, tf)

특징 검출

모서리(corner) 같은 특징을 찾을 때 feature 모듈을 써요. 예를 들어 corner_harris()로 해리스 코너를 찾을 수 있어요.

from skimage import feature

coords = feature.corner_peaks(feature.corner_harris(image))

지역 특징과 기술자

스케일 불변 특징점(SIFT 계열) 같은 지역 특징은 feature.MatchTemplate()이나 ORB, BRISK 같은 기술자로 표현할 수 있어요. 두 이미지를 정합(registration)하거나 물체를 매칭할 때 쓰여요.

from skimage import feature

descriptor_extractor = feature.ORB(n_keypoints=100)
descriptor_extractor.detect_and_extract(image)

더 알아보기