0
SIFT의 OpenCV 구현에서 키포인트는 각도 (180도에서 -180까지)를 가지며이 키포인트의 계산 된 방향을 나타냅니다. SIFT는 히스토그램에서 10도 빈을 사용하여 키포인트의 주요 방향을 지정하므로이 각도 범위를 어떻게 얻을 수 있습니까? 값이 10도 단위가되어서는 안됩니까?OpenCV 구현의 SIFT 방향
히스토그램 스무딩이 그렇게 되나요?
이것은 keypoint.angle에 값이 할당 된 코드입니다.이 값을 얻은 방법을 이해하는 데 도움이 될 수 있습니까?
float omax = calcOrientationHist(gauss_pyr[o*(nOctaveLayers+3) + layer],
Point(c1, r1),
cvRound(SIFT_ORI_RADIUS * scl_octv),
SIFT_ORI_SIG_FCTR * scl_octv,
hist, n);
float mag_thr = (float)(omax * SIFT_ORI_PEAK_RATIO);
for(int j = 0; j < n; j++)
{
int l = j > 0 ? j - 1 : n - 1;
int r2 = j < n-1 ? j + 1 : 0;
if(hist[j] > hist[l] && hist[j] > hist[r2] && hist[j] >= mag_thr)
{
float bin = j + 0.5f * (hist[l]-hist[r2])/(hist[l] - 2*hist[j] + hist[r2]);
bin = bin < 0 ? n + bin : bin >= n ? bin - n : bin;
kpt.angle = 360.f - (float)((360.f/n) * bin);
if(std::abs(kpt.angle - 360.f) < FLT_EPSILON)
kpt.angle = 0.f;
keypoints.push_back(kpt);
}
}
이 질문 하다니은 HTTP에 대한 가능성이 적절하게, 엄격하게 프로그래밍 질문이 아니라 다른 사이트에 속한 재미있다 :
이것은 우리가 3 점 포물선을 들어갈 수있는 방법에 대한 링크입니다 // CS. stackexchange.com/ – EdChum
나는 당신이 옳았다 고 생각합니다. 통지 : 감사합니다. –
아마도 원고를 설명하는 원고를 읽을 가치가 있습니다. 내 이해는 원고가 크기와 방향이 불변이지만, 설명자가 동일한 기능을 설명 하는지를 결정할 수있는 각도를 알아야합니다. – EdChum