저는 C++에서 OpenCV를 사용하여 탐색 및 되감기 기능 (비디오 (.avi) 용)을 찾거나 구현하려고했지만 그 방법을 찾지 못했습니다. 전체 파일을 한 번 저장하고 각 이미지를 저장합니다. 다른 방법이 있습니까?OpenCV 탐색 기능/되감기
모든 도움을 주시면 감사하겠습니다. 미리 감사드립니다!
저는 C++에서 OpenCV를 사용하여 탐색 및 되감기 기능 (비디오 (.avi) 용)을 찾거나 구현하려고했지만 그 방법을 찾지 못했습니다. 전체 파일을 한 번 저장하고 각 이미지를 저장합니다. 다른 방법이 있습니까?OpenCV 탐색 기능/되감기
모든 도움을 주시면 감사하겠습니다. 미리 감사드립니다!
cvSetCaptureProperty()를 사용하면 밀리 초 단위 또는 서수 프레임 단위로 프레임을 순환 할 수 있습니다.
int cvSetCaptureProperty(CvCapture* capture, int property_id, double value);
PROPERTY_ID 당신이 사용해야합니다 속성입니다. 프레임에 위치
처음 두 가지는 관심의 대상입니다.
편집 : 추가 정보를 원하시면 :
할 수 있습니다 반복 해 다양한 프레임 인덱스로 언급 한 함수를 호출하여 프레임을 순환.
cvSetCaptureProperty(capture, CV_CAP_PROP_POS_FRAMES, frameIndex);
예 :
IplImage* frame;
CvCapture* capture = cvCreateFileCapture("test.avi");
/* iterate through first 10 frames */
for (int i = 0; i < 10; i++)
{
/* set pointer to frame index i */
cvSetCaptureProperty(capture, CV_CAP_POS_FRAMES, i);
/* capture the frame and do sth with it */
frame = cvQueryFrame(capture);
}
할 때마다 사용자가/전달 비디오를 되감기 버튼을 클릭 실행하는 유사한 코드를 넣을 수 있습니다.
C++ 방법 (OpenCV 2 이상)은 동일한 property_id 및 value 대신이 메서드를 사용하는 것입니다.
bool VideoCapture::set(int property_id, double value)
전체 파일을 IplImages 배열로 읽은 다음이를 통해 작업해야한다고 생각합니다. 이유는 cvQueryFrame은 단방향 프로세스이므로 한 번에 하나의 프레임을 순서대로 읽습니다. 나는 다른 어떤 생각도 할 수 없다. 비디오의 길이에 따라 초기화 시간이 그리 좋지 않을 수도 있습니다.
cvTrackbars는 주로 매개 변수를 변경하는 데 사용됩니다. 변수 (포인터 형식의 매개 변수로 제공)의 값을 변경하고 콜백 함수를 throw합니다. 불행히도 HighGUI의 유일한 버튼 스타일 요소입니다.
와우, 고마워요. 추측은 저를 위해 그것을 좁 힙니다. 나는 그것이 사실일지도 모른다라고 생각했다. 나는 게으르지 않고 멈추어야한다고 생각합니다. – Cenoc
끝으로, OpenCV 검색은 flv에서 제대로 작동하지 않습니다. 검색을 시도하면 문제가 해결되지 않을 수 있습니다. 나에게 그것을 이해하는 하루가 걸렸다! !! –