필자는 Python과 numpy를 사용하여 라인 탐지를위한 표준 Hough Transform을 구현 해왔다.사인 곡선을 반향하는 선들이 왜곡을 반으로 나눈 이유는 무엇입니까?
알고리즘을 구현하는 데 성공했지만 출력 결과가 반으로 나뉘어 진 사인 곡선을 갖습니다. 반은 결과 이미지의 극단에 있고 나머지는 이미지의 다른 부분에 있습니다. 내가 문제가 (허프 공간의 정의에 어딘가 의심
def houghTransf(img, r_ro, r_theta,thrs):
linhas, colunas =img.shape
theta = np.linspace(0.0,180.0,np.ceil(180.0/r_theta)+1)
max_rho = np.sqrt((linhas**2)+(colunas**2))
rho = np.linspace(0.0,max_rho,np.ceil(max_rho/r_ro)+1)
res = np.zeros((len(theta),len(rho)))
# Hough Transform
for i in range(linhas):
for j in range(colunas):
if(img[i,j]<>0):
for k in theta:
v_rho = i*np.sin(k*(np.pi/180)) + j*np.cos(k*(np.pi/180))
res[k,v_rho] += 1
return res
: 여기
theta
및
rho
의 정의), 각각의
linspace
의 최소 한계를 변경하는 것이 도움이되지 않는 것 같습니다.
사인 곡선을 이미지 에서처럼 분할하지 않고 표시 할 수있는 방법이 있습니까?
rho
및 theta
범위를 조정할 수 있습니까?
편집 :
또한 한 줄로 알고리즘을 실행하려고했습니다. 여기
수정. 그리고 ρ는 실제로 그것이 작동하기 위해서는 두 배 더 커야합니다. –