본문 바로가기

컴퓨터 비전/실습

(5)
prewitt, sobel, canny 구현(python) 학습한 prewitt, sobel, canny에 대해 python으로 구현을 해봅시다. Code import cv2 import time import numpy as np import math from matplotlib import pyplot as plt def padding(img, n): x, y = img.shape # original image size padding_img = np.zeros((x+2*n, y+2*n)) # consider up,down,left,right padding_img[n:x+n, n:y+n] = img # zero padding return padding_img def edge_detection(img, mask1, mask2, threshold): img = pa..
mean shift 직접 구현하기(python) Mean Shift 이번 포스팅에서는 mean shift 알고리즘을 직접 구현해보도록 하겠습니다. 산 정상을 가장 빨리 도착하는 방법은 등고선 지도에서 선이 조밀한 곳을 직선거리로 가는 방법일 것입니다. 이처럼 어떤 값의 분포중심을 찾는 방법이 mean shift (평균 이동) 알고리즘 입니다. 구현방법은 데이터 중심으로부터 반경 R안에 있는 전체 데이터의 무게중심을 구하고 중심을 무게중심으로 이동시켜 다시 그 과정을 수렴할때까지 반복하면 됩니다. 따라서 k means 알고리즘과 달리 사람이 직접 k개로 데이터를 나누지 않아도 적절히 세그멘테이션이 가능합니다. 하지만 모든 데이터에 대해 수렴점을 찾기때문에 시간이 오래 걸리고 탐색 윈도우 반경을 얼마로 설정해야할지는 정해야 합니다. 너무 작으면 local..
kmeans 직접 구현하기(python) 이번 포스팅에서는 kmeans 알고리즘을 직접 구현해보는것 위주로 리뷰하겠습니다. kmeans는 임의로 중심을 정하는 부분과 모든 데이터에 대해서 중심 거리를 각각 구해서 가장 거리가 작은 중심으로 그룹핑하고 또 각각의 그룹마다 다시 평균을 구하고 반복하는데 평균이 변화가 거의없이 수렴하면 종료합니다. 자세한 사항은 위키백과를 참고해주세요. https://ko.wikipedia.org/wiki/K-%ED%8F%89%EA%B7%A0_%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98 k-평균 알고리즘 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. k-평균 알고리즘(K-means clustering algorithm)은 주어진 데이터를 k개의 클러스터로 묶는 알고리즘으로..
SIFT 직접 구현하기(python) 컴퓨터 비전 책을 통해서 배운 SIFT 특징점 검출 알고리즘을 python으로 직접 구현 해봅시다. SIFT에 대한 개념은 위키백과에 자세히 설명돼 있습니다. https://en.wikipedia.org/wiki/Scale-invariant_feature_transform Scale-invariant feature transform - Wikipedia From Wikipedia, the free encyclopedia Feature detection algorithm in computer vision The scale-invariant feature transform (SIFT) is a computer vision algorithm to detect, describe, and match local f..
Bilateral Filter 직접 구현하기(python) Bilateral Filter란 이번 포스팅에서는 가우시안 노이즈가 낀 사진을 필터링해주는 Bilateral Filter를 opencv를 사용하지 않고 python으로 직접 구현해 보는것 위주로 다루겠습니다. Bilateral Filter는 기존 Gaussian Filter와는 다르게 단순히 가우시안 분포(거리에 따라 가중치가 작아짐)로 사진을 복원하는것이 아니라 현재 관심있는 구역의 상태에 따라 동적으로 반영하여 계속 달라지는 필터로 사진을 복원합니다. 예를 들어 원본이 256 * 256 Gray 사진이라면 Gaussian Filter는 Filter가 딱 한개면 되는것에 비해 Bilateral Filter는 무려 약 65536개 만큼 필터를 개별 맞춤 제작해주어야 합니다. 그렇기 때문에 시간이 오래 걸..