훌라후프에 같은 질량의 물체가 테두리에 붙어있다. 훌라후프를 땅에 굴릴 때 너무 빠르면 물체가 위로 올라갈 때 바닥에서 떨어질 수 있다. 훌라후프가 튀지 않고 구르려면 물체가 바닥에 있을 때 중심이 움직이는 속력 $v_0$은 얼마가 되어야 하는가? 단, 훌라후프는 미끄러짐 없이 구른다.

1. $v_0 \le \sqrt{2gR}$

2. $v_0 \le \sqrt{4gR}$

3. $v_0 \le \sqrt{6gR}$

4. $v_0 \le \sqrt{8gR}$

 

 

더보기

바퀴가 구르면 중심에 대해서 회전운동을 하므로 물체가 가장 위에 올라갈 때 수직항력이 가장 작아지므로 바닥에서 떨어진다면 이 지점에 왔을 때이다. 이때 질량중심의 속도를 $v$라면 바퀴의 회전 각속도는 $\omega=v/R$이다. 바퀴의 중심과 같이 움직이는 관성계에서 보면 바퀴와 물체는 $\omega$의 각속도로 순간 회전을 한다.  바퀴+물체의 질량중심은 바퀴 중심에서 $R/2$만큼 위에 있고, 역시 $\omega$의 각속도로 시계방향으로 순간 회전을 한다. 계에 작용하는 외력이 바닥의 수직항력($\uparrow$)과 바퀴+물체의 중력($\downarrow$) + 마찰력($\rightarrow$)인데, 수직항력과 중력이 질량중심의 원운동을 기술하는 구심력이 된다.

\begin{gather} \sum F_{down} = 2mg - N = (2m)(R/2) \omega^2 \\  \rightarrow ~~ N= 2mg - mR\omega^2     \end{gather}

바퀴가 바닥에서 튀지 않으려면 $N\ge 0$이어야 한다. 그리고 역학적 에너지 보존에 의해서 (정지마찰력은 일을 하지 않음)

\begin{gather} \frac{1}{2}mv_0 +\frac{1}{2}mv_0^2 + \frac{1}{2} m 0^2+ mgR = \frac{1}{2} mv^2  +\frac{1}{2}mv^2+ \frac{1}{2} m (2v)^2 + mgR  + 2mgR \\\rightarrow~~ 3v^2 = v_0^2 - 2gR \end{gather}

따라서 $N\ge 0$ 조건을 적용하면 훌라후프가 튀지 않을 처음 속력은

$$     v_0^2 \le 8gR$$

 

 

 
728x90
Posted by helloktk
,

Otsu 이진화에서 threshold 값의 선택은 전경과 배경 사이의 분산을 최대로 하는 픽셀 값이다. 영상의 히스토그램이 bimodal인 경우는 잘 동작하지만, unimodal인 영상의 경우는 제대로 처리가 안된다. Valley emphasis 방법은 Otsu 방법을 사용하면서 histogram profile의 valley에 가중치를 더해주는 방식으로 threshold 값을 찾는다.

\begin{gather} \text{Ostu's method: } ~~~\text{threshold}= \underset{0\le t< 256}{\text{argmax}}~\left(\omega_1(t) m_1(t)^2 + \omega_2(t) m_2^2(t)\right)\\  \text{valley-emphasis: }~~\text{threshold}=\underset{0\le t < 256} {\text{argmax}}~  (1-p_t)\left(\omega_1(t) m_1(t)^2 + \omega_2(t) m_2^2(t)\right) \end{gather}

Bimodal 분포의 영상은 Otsu와 거의 같은 결과를 준다. 두 개 이상의 클래스로 분리도 쉽게 구현이 된다.

 

참고: http://msn.iecs.fcu.edu.tw/report/data/ori_paper/2006-12-21/2006-Automatic%20thresholding%20for%20defect%20detection.pdf

영상은 참고 논문에서 추출함. 중간=Otsu, 마지막=valley-emphasis

 

 

int valley_emphasis_Otsu(int hist[], int N) {
    int istart = 0, iend = N - 1;
    while (!hist[istart]) istart++;
    while (!hist[iend])   iend--;
    double st = 0, sxt = 0;           // total pdf, total cdf;
    for (int i = istart; i <= iend;i++) { 
        st += hist[i]; 
        sxt += double(i) * hist[i];
    }
    int winner = istart; 
    double maxgain = 0;
    double s0 = 0, sx0 = 0;
    for(int i = istart; i <= iend; i++) {
        s0  += hist[i];				// 1-pdf;
        sx0 += double(i) * hist[i];		// 1-cdf;
        double s1  = st - s0;			// 2-pdf
        double sx1 = sxt - sx0;			// 2-cdf
        double m0  = sx0 / s0;			// E(X1);
        double m1  = sx1 / s1;			// E(X2);
        double gain = (1 - hist[i] / st) * (s0 * m0 * m0 + s1 * m1 * m1);
        if (gain > maxgain) {
            maxgain = gain; 
            winner = i;
        }
    }
    return winner;
};

 

728x90

'Image Recognition > Fundamental' 카테고리의 다른 글

Quadtree Segmentation  (0) 2022.05.21
Harris Corner Detector  (0) 2022.04.07
Image rotation by FFT  (0) 2022.02.18
FFT를 이용한 영상의 미분  (0) 2022.02.12
SVD Fitting  (0) 2022.02.07
Posted by helloktk
,