houghlinesp 예제

아시다시피 이미지 공간의 선은 두 가지 변수로 표현될 수 있습니다. 예를 들어 이미지의 모든 점에 대해 위에서 동일한 작업을 수행할 수 있습니다. 두 개의 서로 다른 점의 곡선이 평면 (theta) – (r)에서 교차하는 경우 두 점이 동일한 선에 속한다는 의미입니다. 예를 들어 위의 예제를 따라 (x_{1} = 4), (y_{1} = 9) 및 (x_{2} = 12), (y_{2} = 3) 두 개의 포인트에 대한 플롯을 그립니다. 이제 Hough 변환이 선에 대해 어떻게 작동하는지 살펴보겠습니다. 모든 줄은 다음 두 용어로 나타낼 수 있습니다. 따라서 먼저 2D 배열 또는 어큐뮬레이터(두 매개 변수의 값을 보유)를 만들고 처음에는 0으로 설정됩니다. 행이 를 나타내고 열이 을 나타내도록 합니다. 배열의 크기는 필요한 정확도에 따라 달라집니다. 각도의 정확도를 1도로 지정하려면 180개의 기둥이 필요하다고 가정합니다. 의 경우 가능한 최대 거리는 이미지의 대각선 길이입니다. 따라서 하나의 픽셀 정확도를 취하면 이미지의 대각선 길이가 될 수 있습니다.

. houghtransform 메서드에는 maxLineGap이라는 변수가 있습니다. 우리는 우리의 필요에 맞게 그 가치를 변경할 수 있습니다. 이 경우 줄 사이의 간격이 최대 250 픽셀일 수 있으므로 코드는 다음과 같이 표시됩니다. 선의 첫 번째 지점을 가져 가라. 해당 값(x,y)을 알고 있습니다. 이제 선 방정식에서 값을 넣고 얻을 수 있는지 확인하십시오. 모든 쌍에 대해 해당 셀의 축압기에서 값을 하나씩 증분합니다. 그래서 지금 축적기에서, 셀 (50,90) = 다른 셀과 함께 1. 그런 다음 선을 그려 결과를 표시합니다.

안녕. 코드를 실행할 때 “x1, y1, x2, y2 = line[0]”: ValueError: 압축을 풀기에 충분하지 않은 값 (예상 4, 1) 문제를 알고 있지만 해결할 수 없습니다. 솔루션이 무엇입니까? 용어 정렬 : (r = x cos theta + y sin theta) . . 양수 실제 스칼라로 지정된 최소 선 길이입니다. houghlines는 지정된 값보다 짧은 줄을 삭제합니다. . (r > 0) 및 (0< theta < 2 pi)와 같은 점만 고려합니다.

그런 다음 단순히 이미지를 피킹하여 그레이스케일 형식만 로드하고 가장자리를 감지합니다. OpenCV는 두 가지 종류의 Hough Line 변환을 구현합니다. 임계값을 변경하기 위한 트랙바가 있는 Hough 표준과 확률을 모두 보여주는 약간 더 멋진 버전이 여기에서 찾을 수 있습니다. 임계값을 변경하는 동안 검색된 줄 수가 달라지는 것을 확인할 수 있습니다. 설명은 일종의 분명합니다: 더 높은 임계값을 설정하면 감지된 선을 선언하기 위해 더 많은 포인트가 필요하기 때문에 더 적은 줄이 감지됩니다. . 세 개의 플롯이 한 지점에서 교차합니다((0.925, 9.6)), 이러한 좌표는 매개변수((theta, r)) 또는 (x_{0}, y_{0}),(x_{1}, y_{1}), (x_{1}) 및 (x_{2,2)의 선입니다. 라이브러리를 가져 와서 비디오를로드 시작하자 : 아주 좋은 비디오 자습서 주셔서 대단히 감사합니다! . . 위의 모든 것들은 무엇을 의미합니까? 일반적으로 곡선 간의 교차 수를 찾아선을 감지할 수 있습니다. 교차하는 커브가 많을수록 해당 교차점으로 표시되는 선에 더 많은 점이 있음을 의미합니다. 일반적으로 선을 감지하는 데 필요한 최소 교차 수의 임계값을 정의할 수 있습니다.