##[Computer Vision] Hough Transform Line Detection
허프변환(선검출)은 이미지에서 직선을 검출하는 방법이다.
당연히 이미지=Edge를 적용한 이미지 이다.
우리는 기울기가 m
, y절편이 n
인 수식을 일반적으로 다음과 같이 표현한다.
하지만 이 방법을 사용하게 되면, 기울기가 무한대
가 되는 경우가 발생한다.
일단 알고 가야할것이, y
절편이 a
, x
절편이 b
인 식을 아래와 같이 표기한다.
우리는 위와같이 y=ax+b
의 그래프를 r 과 Θ에 관한 식으로 나타내어야 한다.
위와 같은 직각 삼각형이 있을때 삼각함수의 식은 아래와 같다.
그럼이제 위 수식을 바꿔보자.
파란색 선으로 된 그래프는 아래와 같다.
x cosΘ + y sinΘ = r
의 식으로 표기할 것이다. 이는 이산적인 함수라 컴퓨터로 표현이 가능하다.
여기서 r
과 Θ
가 가질수 있는 범위는 아래와 같다.
M
, N
은 이미지의 가로/세로 픽셀수 이다.
#####1. Canny Edge가 적용된 이미지를 준비한다.
#####2. 모든 픽셀을 순회한다.
r
을 구한다.r
이 범위내에 속하면, voting 한다.(counting)정말 심플한 알고리즘이다.
아래는 그 결과로 voting그래프와, Edge이미지,직선 검출 이미지이다.
변수는 CannyEdge의 상한값과 하한값, 그리고 threshold 이 3가지에 의해 결과는 달라진다.
전신주를 찾아야 하는데, 인간적으로 전기줄 거미줄마냥 나온사진을 보면 그냥 한숨만 나온다.
#####Hough Transform Line Detection VS2013 Project
https://drive.google.com/open?id=0B9hvQueMdS-2SnB4S3VhcFZzeUk
###Reference