2014-07-25 2 views
1

문제가

5 초마다 스냅 샷을 웹에 게시하는 카메라로 작업하고 있습니다. 카메라가 사람의 선을 감시하고 있습니다. 내 스크립트가 얼마나 오래 사람들의 라인인지 알려주고 싶습니다. 내가 처음 python 용 opencv를 사용하여 개별 프레임에서 전경 추출

  • 을 시도했습니다 무엇

    , 나는 내가 BackgroundSubtractorMOG를 사용하여이 작업을 수행 할 수 있다고 생각하지만, 이것은 단지 검은 이미지를 생산하고있다. 여기에 비디오 캡처 대신 이미지를 사용하도록 수정이 내 코드입니다 :

    import numpy as np 
    import cv2 
    
    frame = cv2.imread('sample.jpg') 
    fgbg = cv2.BackgroundSubtractorMOG() 
    
    fgmask = fgbg.apply(frame) 
    
    cv2.imshow('frame', fgmask) 
    cv2.waitKey() 
    

  • 다음으로,이 foreground extraction on an image 보았다, 그러나 이것은 상호 작용 및 알려 스크립트를 필요로 내 사용 사례에 적합하지 않습니다 사람들이 얼마나 길게 있는지.

  • 나는 또한 peopledetect.py을 사용하려고 시도했지만 선의 이미지가 높은 위치에 있으므로이 스크립트는 사람을 감지하지 못합니다.

나는 opencv에 새로운 브랜드이므로 어떤 도움을 주셔서 감사합니다. 요청시 추가 세부 정보를 제공 할 수 있습니다.

참고 : 난 그냥 배경에서 사람들을 분리하는 방법을 알아 내려고 노력하고 있어요로

내가 너무 전반적인 문제를 해결하기 위해 사람을 찾는 게 아니에요. 그러나 더 나은 해결책이 있다고 생각하면 다른 방식으로 문제에 접근 할 수 있습니다.

편집 : 여기의 요청에 따라 샘플 이미지입니다 : Sample

+0

당신은 비디오에서 프레임이 어떻게 생겼는지의 샘플을 제공 할 수 있습니까? 어쩌면 사람과 배경의 대비가 너무 가파르므로 배경 빼기가 아무런 도움이되지 않을 수도 있습니다. – rayryeng

+0

@rayryeng 확실한 점, 게시물을 편집했습니다. –

+0

차갑습니다. 나는 이것을 가지고 놀 것이다. 그 동안이 메소드에 대한 기본 매개 변수가 있으며 이러한 기본 매개 변수를 호출하고 있습니다. 매개 변수를 가지고 놀아서 결실이 있는지 알아 보겠습니다. http://docs.opencv.org/modules/video/doc/motion_analysis_and_object_tracking.html#cv2.BackgroundSubtractorMOG – rayryeng

답변

3

내가 그것을 알아 냈어! @ QED가 나를 도왔습니다. 기본적으로 하나의 이미지로는이 작업을 수행 할 수 없습니다. 비교할 수있는 프레임 수는 최소한 2 프레임이므로 알고리즘이 어떤 것이 다른 (전경)인지, 어떤 것이 같은지 (배경)를 알 수 있습니다. 그래서 2 프레임을 가져 와서 알고리즘을 "훈련"시키기 위해 반복했습니다. 내 코드는 다음과 같습니다.

import numpy as np 
import cv2 

i = 1 
while(1): 
    fgbg = cv2.BackgroundSubtractorMOG() 
    while(i < 3): 
    print 'img' + `i` + '.jpg' 
    frame = cv2.imread('img' + `i` + '.jpg') 

    fgmask = fgbg.apply(frame) 

    cv2.imshow('frame', fgmask) 
    i += 1 

    k = cv2.waitKey(30) & 0xff 
    if k == 27: 
     break 

    cv2.destroyAllWindows() 

그리고 2 연속 이미지의 결과는 다음과 같습니다.

enter image description here

+1

+1 - 멋지다! 기꺼이 알아 냈습니다 – rayryeng

+0

@rayryeng 네 도움에 감사드립니다! –

+1

걱정할 필요가 없습니다! 나는 또한 이것이 어떻게 작동하는지 배우게되고 결과를 보는 것은 정말 멋지다! 나는 OpenCV에 비교적 익숙하다. 그래서 이것은 내 모자 밑에서 지킬 것이다. – rayryeng

관련 문제