2015-01-13 10 views
0

내가 어떻게 선을 평행하게 그리는 지 알고 싶습니다. Opencv로 시작합니다. 제발 도와주세요. howslines 함수를 사용하여 선을 감지합니다. 이제 선을 평행선으로 감지하고 싶습니다. 선의 에큐 쿠션은 y = k * x + b이고 두 선은 k1 = k2 일 때 평행합니다. 하지만 opencv에서 houghline을 어떻게 나타낼까요? HoughLines 의해 반환행과 houghlines opencv + python

답변

1

선은 극좌표 (ρ, θ)에 있습니다

http://docs.opencv.org/modules/imgproc/doc/feature_detection.html?highlight=houghlines#houghlines

라인 - 라인 출력 벡터. 각 라인은 두 요소 벡터 (ρ, θ)으로 표시됩니다. ρ은 좌표 원점 (0,0) (이미지의 왼쪽 상단 구석)에서부터의 거리입니다. θ은 라인 회전 각도가 라디안 인 경우 (0 ~ 수직선, π/2 ~ 가로선)입니다.

동일한 (일부 오차 범위 내) 각도가 θ 인 라인은 평행합니다.

HoughLinesP

, 다른 한편으로는, 라인 엔드 포인트를 반환, 그래서 당신은 사용하여 각 라인의 기울기를 계산해야 할 것입니다 : 내가 경사, 내가 어떻게 계산하는 것을 가지고 지금,

m = (y2 - y1)/(x2 - x1) 
+0

덕분 응답을 다른 선의 기울기를 비교 한 다음 비교해보십시오. 이와 비슷하지만 벡터 줄 처리 방법을 모르겠습니다 [0]. 코드는 다음과 같습니다. https://www.dropbox.com/s/zngguzrp6svev0n/Captura%20de%20pantalla%20de%202015-01-14%2011%3A25%3A11.png?dl=0 – Gui

+0

이 대답을보십시오. itertools를 사용하여 : http://stackoverflow.com/a/942551/1377097. 당신은'combination()'을 원할 것입니다. 문제의 일부는 모든 라인을 그 자체와 다른 라인과 비교한다는 것입니다. 그러면 모든 라인이 어떤 것과 평행하게됩니다. – beaker

+0

답장을 이해하지 못합니다. 그러나이 대답은 http://stackoverflow.com/a/14345425/4376296입니다. itertools.combination을 적용하는 방법에 대한 아이디어가 있지만 적합하지는 않습니다. 이 라인에, 어떤 제안하시기 바랍니다? 여기 코드는 https://www.dropbox.com/s/eyl10cods3nvqpk/Captura%20de%20pantalla%20de%202015-01-14%2015%3A05%3A42.png?dl=0입니다. – Gui