Tôi đã cài đặt OpenCV 2.2 và bây giờ tôi không thể chụp webcam để hoạt động. Nó hoạt động tốt trong phiên bản 2.1. OpenCV phát hiện một webcam, không báo cáo bất kỳ lỗi hoặc cảnh báo nào, nhưng mỗi khung là một hình ảnh màu xám. Tôi thậm chí đã thử một mẫu mã từ wiki OpenCV:Vấn đề chụp webcam OpenCV
VideoCapture cap(0); // open the default camera
if(!cap.isOpened()) // check if we succeeded
return -1;
Mat edges;
namedWindow("edges",1);
for(;;)
{
Mat frame;
cap >> frame; // get a new frame from camera
cvtColor(frame, edges, CV_BGR2GRAY);
//GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5);
//Canny(edges, edges, 0, 30, 3);
imshow("edges", edges);
if(waitKey(30) >= 0) break;
}
// the camera will be deinitialized automatically in VideoCapture destructor
return 0;
Có ai gặp phải vấn đề này không? Tôi đang sử dụng 64bit Win7 và Visual Studio 2010.
Ý anh là gì bởi " một hình ảnh màu xám "? Màu xám, không có cấu trúc? Hoặc, chỉ là một hình ảnh màu xám? Bạn đang gọi cvtColor() để grayscale hình ảnh, và các imshow() gọi là hiển thị phiên bản màu xám ... – jtdubs
Rắn màu xám, không phải màu xám. – Figaro
Thỉnh thoảng ib này hơi chậm. Thêm một 'sleep (1)' hoặc 'cv :: waitKey (100)' trước Mat edge và thêm vào bên trong vòng lặp for. Điều này sẽ làm việc. Và đừng quên chekc nếu 'frame' là một hình ảnh prper. – nutario