저는 파이썬에서 지문에 대해 로컬 리지 방향을 구현하려고했습니다. 나는 Gradient 메서드를 사용했고, sobel 연산자를 사용하여 필요한 그라디언트를 얻었습니다. 그러나이 방법은 많은 결함이 있으며, 특히 약 90도 정도의 결함이 있음이 밝혀졌습니다. 지금까지 해본 코드를 포함 할 수는 있지만 원하는대로 작동하지 않으므로 필요한 코드인지 모르겠습니다. 또한 선분 방법을 살펴 보았지만 잠재 지문과 함께 작업하므로 선분에서 최대 흑백을 찾아야하는지 알기가 어렵습니다. 나는 또한 연속 선의 최대 농도 영역을 탐지하는 알고리즘을 구현하려고 시도했지만이를 작동시키지 못했습니다. 다른 알고리즘에 대한 제안 사항은 무엇입니까?로컬 리지 방향 구현
편집 : (지문
내가 블록 내 함수를 적용하는 함수를 사용하고 있지만,이
def lro(im_np):
orientsmoothsigma = 3
Gxx = cv2.Sobel(im_np,-1,2,0)
Gxy = cv2.Sobel(im_np,-1,1,1)
Gyy = cv2.Sobel(im_np,-1,0,2)
Gxx = scipy.ndimage.filters.gaussian_filter(Gxx, orientsmoothsigma)
Gxy = numpy.multiply(scipy.ndimage.filters.gaussian_filter(Gxy, orientsmoothsigma), 2.0)
Gyy = scipy.ndimage.filters.gaussian_filter(Gyy, orientsmoothsigma)
denom = numpy.sqrt(numpy.add(numpy.power(Gxy,2), (numpy.power(numpy.subtract(Gxx,Gyy),2))))# + eps;
sin2theta = numpy.divide(Gxy,denom) # Sine and cosine of doubled angles
cos2theta = numpy.divide(numpy.subtract(Gxx,Gyy),denom)
sze = math.floor(6*orientsmoothsigma);
if not sze%2: sze = sze+1
cos2theta = scipy.ndimage.filters.gaussian_filter(cos2theta, orientsmoothsigma) # Smoothed sine and cosine of
sin2theta = scipy.ndimage.filters.gaussian_filter(sin2theta, orientsmoothsigma)#filter2(f, sin2theta); # doubled angles
orientim = math.pi/2. + numpy.divide(numpy.arctan2(sin2theta,cos2theta),2.)
return orientim
검은 색과 흰색으로 분리 된 이미지로 무엇을합니까? 원본에 슈퍼 임 포즈? 소벨 대신 내가 쓸 수있는 것에 대한 제안이 있니? 저는 Sobel이 그라디언트를 얻기 위해 사용 된 것을 보았습니다. 그래서 다른 방법들에 대해서는 손실을 입었습니다. – larstoc
방향을 (흑백으로) 찾아 방향을 함께 겹쳐서 더 밀도가 높은 프리젠 테이션을 제공하십시오. 정확한 그라데이션 파인더를 기억하지 못합니다. 범위를 표시하고 가운데에 닿는 전경 영역 만 유지 (다른 산등성이 제거)하고 미니 호우 또는 기타 기술을 사용하여 각도를 찾습니다. – Jiminion
http://proceedings.spiedigitallibrary.org/proceeding.aspx?articleid=948092 – Jiminion