2010-06-09 4 views
6

이미지에서 배경 빼기 작업을 수행하려고합니다. 저는 MATLAB을 처음 사용하고 이미지 처리/분석에 익숙하지 않으므로 미안합니다. 1) 외에도 imsubtract()에는 다른 이미지를 제외하고 배경 빼기를 수행하는 다른 방법이 있습니까? 2) imsubtract()의 수학 함수 explanation에서 구조화 요소를 디스크로 만드는 이유는 무엇입니까? 지금까지 뭔가를 시도 할 때마다 나는 잡음이 많은 배경을 빼는 것뿐만 아니라보고 싶은 이미지의 일부를 잃어 버리기 때문에 다소 어려워 보인다.MATLAB에서 배경 빼기

답변

5

어떤 종류의 이미지로 작업하십니까?

배경 빼기은 쉽습니다. 상수 값 또는 이미지와 크기가 같은 배경을 뺍니다. img = img - background을 쓰면됩니다. imsubtract은 단순히 배경이 이미지보다 큰 경우 출력이 0인지 확인합니다.

배경 추정은 어렵습니다. 거기에서 어떤 종류의 이미지를보고 있는지 알고 있어야합니다. 그렇지 않으면 배경 추정이 실패합니다.

예를 들어 어두운 배경에서 밝거나 어두운 밝은 부분 또는 줄 모양이있는 경우 로컬 최대 필터 (imdilate) 또는 로컬 최소 필터 (imerode)로 통과 할 수 있습니다 필터 마스크를 배치 할 때마다 배경을 덮는 일부 픽셀이 있습니다. 또한 필터가 피쳐와 모양이 다소 비슷하기를 원합니다. 귀하의 경우 이미지의 일부를 잃어 버리면 필터를 크게 만들고 너무 크게 만들 수 있습니다.

최대 또는 최소를 빼는 대신 중간 값을 빼는 것이 효과적 일 수 있지만 일반적으로 필터 마스크 내부에 대부분의 배경 픽셀이 있도록 필터 크기를 선택해야합니다. 불행히도, 중간 필터링은 다소 느립니다.

+0

+1 배경 추정이 어렵습니다. – Geoff

+0

배경 빼기는 제안한 것과 약간 다릅니다. imsubtract는 배경 빼기가 아니며 제안 된 것도 아닙니다. 배경 빼기는 전체 이미지가 아닌 배경 픽셀에만 영향을 주어야합니다. 흰색 배경을 고려하십시오. 이제 검은 공이 이미지를 가로 질러 움직입니다. 이미지 뺄셈은 객체를 폐색하거나 (구현에 따라) 색상을 왜곡하는 반면 배경 차감은 배경 모델 (전경)과 충분히 다른 픽셀에는 영향을 미치지 않아야합니다. – Anthony

+0

@Anthony : 작업하는 이미지 유형에 따라 크게 달라집니다. 전경과 배경의 강도가 (일반적으로 내가 사용하는 것 인) 부가 적이면, 전체 이미지에서 배경을 뺍니다. 사실, 배경 빼기는 비 신호 픽셀에만 영향을 주어야합니다. – Jonas

2

배경 이미지를 빼려면 배경 모델이 필요합니다. 가장 간단한 모델은 허용 가능한 편차 (+/- 0-255)와 함께 배경으로 캡처 된 이미지입니다. 그렇다면 MATLAB의 배경 빼기는 매우 간단합니다.

image (찾기 (abs (이미지 배경)= 임계 값) = 0;

통계 모델을 사용하면 어려워집니다. 그러나 기본적으로 배경을 빼는 것은 매우 쉽습니다. imsubtract는 배경 빼기가 아닙니다. 그것은 포토샵에서 찾을 수있는 것처럼 뺄셈 필터입니다. 전경 대 배경에 대해서는 신경 쓰지 않아 그 지점을 무너 뜨립니다.

배경 차감 그 자체가 꽤 쉽기 때문에 배경 추정에 대한 질문이 더 많습니다. 이것은 좀 더 복잡하고 일반적으로 백그라운드의 통계 모델을 구축하기 위해 더 많은 프레임과 교육이 필요합니다 (예 : 가우스 분포 또는 가우시안 혼합으로 픽셀을 보거나 이동하지 않는 것을 결정하기 위해 옵티컬 흐름을 찾으십시오).

직장이나 학교를 통한 기술 기사에 액세스 할 수있는 경우 Wren과 다른 사람들이 "Pfinder : 인체의 실시간 추적"을 사용하면 매우 간단합니다. 또는 Google에서 단일 가우스 배경 빼기를 검색 할 수 있습니다. 여기 OpenCV를 사용하여 구현 된 여러 가지 방법이 있습니다. ->http://dparks.wikidot.com/source-code < - 유용 할 수 있습니다.

2

Computer Vision System Toolbox에는 Stauffer와 Grimson의 GMM 배경 빼기를 변형 한 vision.ForegroundDetector 개체가 있습니다. 구현은 여러 코어를 활용하여 매우 빠릅니다. 배경 차감을 여러 객체를 추적하기위한 시스템의 구성 요소로 사용하는 방법에 대한 내용은 example을 확인하십시오.