독학하는 학생의 정리노트

독학하며 정리노트를 올리는 학생 공부 블로그입니다.

IT 프로그래밍/Python 파이썬

허프 변환 hough transform

공부 안 하는 학생 2020. 10. 3. 08:26

현재 영상처리와 이미지 프로세싱을 공부하고 있어 허프변환이라는 것을 알아보려한다.

허프변환은 한 점이 가질 수 있는 모든 직선을 b와 m에 대한 평명에서 하나의 직선으로 표현할 수 있다.

그렇다면 두 점을 m,b에 대한 식으로 바꿨을 때는 m,b평면에서 직선이 두개 나오게 된다. 그렇다면 그 두 직선의 교점은 두 점을 지나는 직선을 의마하게 된다.

m,b평면에서 나타낸 직선은 한 점이 가질 수 있는 모든 직선을 의미하고 m1,b1에서 만난 점은 두 점이 모두 가질 수 있는 직선을 의미하기 때문이다.

교점이 의마하는 것은 x,y 평면에서 그 점들을 지나는 직선 을 의미한다.

wkdtjsgur100.github.io/Hough-Transform/ 이 블로그를 참고 하였습니다.'

in image space, a line is plotted as x vs y, but in 1962, Paul Hough devised a method for representing lines in parameter space, which we will call hough space in his honor.

in hough space, I can represent my " x vs y" line as a point in "m vs b" instead. the hough transform is just the conversion from image space to Hough space. so, the characterization of a line in image space will be a single point at the position(m,b) in Hough space.

 

OpenCV를 활용한 허프변환

위에서 설명한 허프변환을 이용하여 이미지에서 직선을 찾는 알고리즘은 cv2.HoughLinesP() 함수에 모두 들어있다.

원본 이미지에 대해 canny edge detection(에지찾는 알고리즘)을 한 결과를 구한다.

threshold 값이 작거나 큼에 따라 나오는 결과가 확연히 다르므로 주어진 이미지에 따라 적절한 threshold값으로 정한다.

2020/10/03 - [IT 프로그래밍/Python 파이썬] - Canny Edge openCV, python

 

영어는 간단히 설명해주는 것이고 읽기 어렵지 않아 번역없이 넣었습니다!

알듯말듯하지도 않고 다음날이면 하나도 기억안나는 알고리즘 세계에 하루종일 있는 프로젝트 빨리 끝내야하는 공부 안 하는 학생 이였습니