OpenCV
[OpenCV with Python] 영상의 특징 추출 : 영상에서 원 검출하기 - 허프 변환
허프 변환을 응용하여 원을 검출할 수 있다. 직선 검출과 같이 원의 방정식을 파라미터 좌표평면에 표현하면 3차원 축적 평면이 되므로 연산속도가 너무 오래 걸리게 된다. 속도를 더 빠르기 위해 제안된 방법이 Hough gradient method 이다. Hough gradient method 원에서 검출된 에지의 원주 점의 정보를 이용한다. 원 에지 픽셀에서 그래디언트를 계산한다. 그래디언트 크기 방향으로 직선을 그리면서 값을 누적시킨다. 그래디언트 크기는 원의 중심을 향하므로 직선은 원의 중심에서 모이게 된다. 원의 중심을 찾은 후 반지름을 찾고, 원의 중심에서 반지름을 점점 키워가면서 원주와 만나는지를 확인한다. 단점은 여러 개의 동심원을 검출 못하고 가장 작은 원 하나만 검출한다. ✔︎ 허프 변환 원..
[OpenCV with Python] 영상의 특징 추출 : 영상에서 직선 검출하기 - 허프 변환
허프 변환(Hough transform) 직선 검출이란? 에지(윤곽선) 영상은 검정색 배경에 에지부분만 흰색이다. 이 입력 영상에서 에지가 있는 좌표를 추출하는 것이다. 에지 영상에서 좀 더 고차원적인 정보를 얻기 위해 에지 영상의 분포를 보고 직선, 사각형 등 고차원적인 형태 정보를 추출한다. 직선을 추출해내는 가장 유명한 알고리즘이 허프 변환이다. 축적 알고리즘을 이용하여 내가 원하는 파라미터를 찾아낸다. 허프 변환 직선 검출은 2차원 영상 좌표에서의 직선의 방정식을 파라미터(parameter) 공간으로 변환하여 직선을 찾는 알고리즘이다. 축적 배열 accumulation array 축적 배열은 직선 성분과 관련된 원소 값을 1씩 증가시키는 배열이다. x, y 좌표평면에서의 직선의 한 점을 a, b ..
[OpenCV with Python] 영상의 특징 추출 : 캐니 에지 검출 cv2.Canny
그래디언트 크기를 구하고 임계값을 설정해줘서 에지를 검출할 경우, 윤곽선이 너무 두껍게 표현된다는 단점이 있다. 이를 보완한 것이 캐니 에지 검출 방법이다. 캐니 에지 검출 - 좋은 에지 검출기의 조건 정확한 검출 - Good detection 픽셀이 조명에 의해 미세한 영향을 받게 되어 임계점보다 크거나 낮아질 수 있다. 이처럼 에지가 아닌 점을 에지로 찾거나 또는 에지인데 에지로 찾지 못하는 확률을 최소화 한것을 정확한 검출이라고 한다. 정확한 위치 - Good localization 실제 에지의 중심을 검출하는 것 단일 에지 - Single edge 하나의 에지는 하나의 점으로 표현한다는 것 이 세가지 조건을 충족해야 좋은 에지라고 할 수 있다. 케니 에지 검출 4단계 1. 가우시안 필터링 가우시안..
[OpenCV with Python] 영상의 특징 추출 : 영상의 미분과 소벨 필터
에지 검출과 미분 ✔︎ 에지 edge 에지는 영상에서 픽셀의 밝기 값이 급격하게 변하는 부분을 말한다. 객체와 객체, 객체와 배경에 어떤 경계를 나타내는 용어이다. 경계부분에는 픽셀값이 크게 변경된다고 가정하고 에지를 구한다. 영상에 미분을 하는 이유는 에지를 검출하기 위함입니다. ✔︎ 기본적인 에지 검출 방법 에지 검출을 위해 픽셀값이 급격하게 변하는 부분을 찾아야한다. 미분은 변화율을 나타내는 척도로, 영상을 미분하여 에지를 검출할 수 있다. 영상을 (x,y) 변수의 함수로 간주했을 때, 이 함수의 1차 미분 값이 크게 나타나는 부분을 검출한다. 검출한 미분값에 T 임계값을 설정해주는 것이 중요하다. 임계값보다 높으면 에지로 판단하게 된다. ✔︎ 1차 미분의 근사화 미분은 전진 차분(Forward d..