0

ハフ変換のこの部分は私には難しいです。

なぜ 16 ビット (および 15 ビット) シフト操作なのか、「-sin」とはどういう意味なのか疑問に思いました。

元のコード: https://github.com/opencv/opencv/blob/master/modules/imgproc/src/hough.cpp

    a = -ttab[max_n*2+1];
    b = ttab[max_n*2];
    x0 = j;
    y0 = i;
    if( fabs(a) > fabs(b) )
    {
        xflag = 1;
        dx0 = a > 0 ? 1 : -1;
        dy0 = cvRound( b*(1 << shift)/fabs(a) );
        y0 = (y0 << shift) + (1 << (shift-1));
    }
    else
    {
        xflag = 0;
        dy0 = b > 0 ? 1 : -1;
        dx0 = cvRound( a*(1 << shift)/fabs(b) );
        x0 = (x0 << shift) + (1 << (shift-1));
    }
4

1 に答える 1