Cắt hình từ video ở visual studio

chuyện là em đang muốn cắt hình từ 1 video có sẵn, và những hình ảnh đó sẽ tự động chạy vào 1 file đả được chỉ định sẵn. Nhưng e làm hoài vẫn k được, nhờ mọi người giúp ạ. Đây là code ạ:

#include<opencv2\core\core.hpp>
#include<opencv2\highgui\highgui.hpp>
#include<opencv2\imgproc\imgproc.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main(void)
{
	VideoCapture cap("D:\\converted\\MVI_1061.avi");
	namedWindow("image", WINDOW_AUTOSIZE);
	waitKey(1000);
	if (!cap.isOpened())
		return -1;
	int key;
	Mat frame;
	int count = 1;
	char filename[256];
	while (true) {
		cap >> frame;
		if (frame.data == NULL)
			break;
		imshow("image", frame);
		sprintf_s(filename, "hinhanh\\MVI_1061\\%05d.bmp", count);
		imwrite(filename, frame);
		count++;
		key = waitKey(30);
		if (key == 27)
			break;
	}
	return 0;
}

Chương trình có bị crash không?
Cụ thể thì nó không ghi được như thế nào, có lỗi gì show lên không?

Thử thay operator >> thành cap.read xem

Xem phần VideoCapture::read
https://docs.opencv.org/2.4/modules/highgui/doc/reading_and_writing_images_and_video.html

// Trên tài liệu họ tạo mới frame tại mỗi vòng lặp chứ không dùng địa chỉ frame cũ, bạn cho dòng Mat frame; vào trong while xem

bạn của mình làm thì rất mượt, tới mình thì nó lại k in hình vào folder, hỏi củng không ai sửa được :((

Bạn kiểm tra folder hinhanh\MVI_1061 có tồn tại không, nó không tồn tại thì không ghi được đâu.
chú ý kể cả MVI_1061 có rỗng cũng được, miễn là nó tồn tại.

Đường dẫn “hinhanh\…” đồng nghĩa với folder hinhanh ở trong folder chung với file .sln của bạn, check lại xem có folder đó chưa nhé!

Cảm ơn 2 bác nhiều, e làm được rồi ạ. Vấn đề là thiếu cái Folder MVI, tại bửa dạy bài này không chú ý nên thiếu bước. :))

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?