2012-10-14 2 views
1

에 대한 원형 버퍼를 만들고 일을하려고 다음내가 MATLAB 프로그래밍에 새로 온 이미지 수집

내가 지속적 카메라로 이미지 (크기 1024 × 1024)를 캡처

가 GetData의 기능을 사용하여 라이브 이미지를 가지고 . 측정을 수행하려면 원형 버퍼를 사용하여 100 개의 이미지 만 저장하고 싶습니다. 정확하게 말하면 100 개의 이미지를 저장하고 새 데이터를 얻으면 가장 오래된 이미지를 지우고 마지막 100 개의 이미지를 측정합니다.

내 관심사는 이해할 수 희망 ... 답변에 대한

감사합니다!

답변

0

사용자가 "원형 버퍼"는 또는 FIFO (, 가장 먼저)라고도 부르는. 대개 이것은 링크 된 목록 데이터 구조에 저장되며 모든 객체 (경우에 매트릭스)는 다음 객체를 가리 킵니다. 그러나 Matlab에는 내장 된 링크 목록 구조가 없지만 Matlab 배열 (벡터/행렬)은 매우 유연하고 효율적입니다.

그래서 각 이미지를 길이 100의 배열 안에 매트릭스로 저장하면 치수가 100x1024x1024 인 3 차원 매트릭스를 얻을 수 있습니다. 그런 다음 새 데이터를 얻으면 배열에서 마지막 행렬을 제거하고 배열의 시작 부분에 새 행렬을 삽입하면됩니다. 다행히도 이것은 당신을 위해 충분히 빠를 것입니다.

행운을 빈다.

0

100 개의 1024x1024 행렬 배열을 만들 수 있습니다. 읽기 및 쓰기 위치를 유지하려면 다음 링크를 참조하십시오. logic of circular buffer

+0

, 간단한 설명과 소스 코드 샘플을 사용하여 답변을 확대 해 보시겠습니까? – bytebuster

1

이 질문에 대한 답변은 매스 웍스의 Create a buffer matrix for continuous measurements입니다. (그는 또한 그것의 비디오를 만들어 : http://blogs.mathworks.com/videos/2009/05/08/implementing-a-simple-circular-buffer/

코드 :.

buffSize = 10; 
circBuff = nan(1,buffSize); 
for newest = 1:1000; 
    circBuff = [newest circBuff(1:end-1)] 
end 

이미지 처리에 순환 버퍼를 적용 gnovice에 의해 업데이트를 확인

이 좋은 시작이 될 것 같다
관련 문제