2009-09-22 8 views
0

녹음을 파일에 저장하는 비디오 레코더를 만들었습니다. 두 번째 파일을 읽은 다음 이전 값 (1 초 이전)과 현재 파일을 비교하고 차이점을 별도의 파일에 쓰는 방법을 구현하고 싶습니다.두 파일을 비교하고 차이점을 추출하는 방법은 무엇입니까?

누군가가 그 일을 설명하거나 간단한 예를 쓸 수 있다면 매우 감사 할 것입니다. 주어진 시간에 compareFiles (File currentFile, File oldFile) 메서드를 호출하여 새 값과 이전 값을 비교하는 스레드가 있어야합니다. 이전 파일을 임시 파일로 저장할 수도 있으며 원본 경로의 현재 파일을 임시 파일과 비교할 수 있습니다.

설명 된 논리의 개선에 대한 제안은 환영 할만한 것입니다.

+0

가장 긴 공통 부분 시퀀스 (http : //)를 찾기 위해 일부 알고리즘을 사용하려고합니다. en.wikipedia.org/wiki/Longest_common_subsequence_problem)을 비교할 수 있습니다. 그렇다면 공통 부분 시퀀스에 포함되지 않는 부분은 분명히 차이가 있어야합니다 ... 그러나이 방법이 사용 사례에 가장 적합한 것인지 확실하지 않습니다. 여기서 당신이 원하는 것은 무엇입니까? – Dirk

답변

0

완벽하지 않은 (물리적으로 완벽하지 않은) 카메라가 있기 때문에 비디오 파일에 너무 많은 데이터가 있습니다. 나는 비디오 스트림 비교를 위해 일반 DIFF algos를 사용할 수 있을지 의심 스럽다.

0

모션 감지를 시도하는 것처럼 들립니다. 기본적인 아이디어는 두 개의 프레임에서 픽셀을 추출하는 것입니다, 그래서 당신은 얻을 :

int p1[],p2[]; 

다음, convert 그들을 규모를 회색 한 다음 다른 하나 빼지 :

int diff[] = new int[pixels1.length]; 
for(int i=0;i<pixels1.length;i++) diff[i] = Math.abs(p1[i] - p2[i]); 

것은 JPEG 압축 등으로 인해 두 개의 후속 이미지가 변경되지 않아도 동일하지 않습니다. 그래서 당신은 어떤 임계 값보다 큰 픽셀을 찾고 싶습니다. 당신이 그들을 찾으면 당신은 동의합니다.

카메라가 움직이는 경우이 방법은 모든 픽셀에서 동작하기 때문에 작동하지 않습니다.

관련 문제