2017-02-21 10 views
0

CCTV 영상에서 사람들을 감지하는 프로그램을 만들려고 노력하고 있습니다. 불행히도 비디오의 노이즈 양은 카메라마다 다르며 시간대별로 다르므로 샘플 비디오마다 다릅니다. 즉, 필요한 NoiseSigma는 1-25 개입니다.OpenCV : BackgroundSubtractorMOG에서 NoiseSigma를 자동으로 설정하는 효과적인 방법

저는 fastNlMeansDenoisingColored 함수를 사용했는데 약간 도움이되었지만 NoiseSigma는 여전히 문제입니다.

동영상을 한 번 반복하면 효과적 일 수 있으며 동영상이 얼마나 시끄러운 지 아이디어를 얻고 NoiseSigma와 NoiseSigma의 관계를 만드시겠습니까? 어떤 아이디어라도 환영합니다.

답변

0

노이즈가없는 참조 데이터가 없어도 이미지 (또는 비디오)의 노이즈 레벨을 결정할 수 있다고 생각하지 않습니다. 한 가지 사실은 정적 인 장면을 기록하고 모든 프레임이 서로 어떻게 다른지 측정 한 다음 측정치와 노이즈 시그마 사이의 관계를 발견하는 것입니다 (희망적으로 선형 임).

총합 화상 (프레임)의 모든 요소를 ​​추가
for i=1, i<frames.count(), ++i 
{ 
    cumulativeError += sum(abs(frame(i) - frame(i-1))) 
} 
cumulativeError/=frames.count() 

스칼라 값을 생성 : 노이즈가 없다고하면, 프레임 간의 누적 차이 나는이 같은 것을 의미 누적 차이에 의해 0이 될 것이다. 나는 여기서 나의 직감을 따르고 있으며 이전에 본 적이있는 방법이 아니라는 점을 명심하십시오.