Я пытаюсь настроить многокамерную систему в среде VS17 win10 OpenCV, используя функцию VideoCapture из библиотеки OpenCV.Камеры Basler USB 3.0 (3840 * 2748 монохромные).У меня не было проблем, чтобы открыть и транслировать до четырех камер.Однако пятую или более камеру не удалось открыть.Принимая во внимание, что все шесть камер могут быть доступны без проблем с помощью программного обеспечения Basler.Я не уверен, существует ли аппаратное ограничение (например, пропускная способность USB или шина PCI), которого не должно быть, потому что в Basler SDK все камеры могут использоваться как обычно.
Я попытался установить изображение с более низким разрешениемчтобы увидеть, если это ограничение пропускной способности USB, но все еще не работает.
int main () {
VideoCapture cap0(0), cap1(1), cap2(2), cap3(3), cap4(4), cap5(5);
Mat ca1, ca2, ca3, ca4, ca5, ca6;
cv::namedWindow("Camera1", WINDOW_NORMAL);
cv::namedWindow("Camera2", WINDOW_NORMAL);
cv::namedWindow("Camera3", WINDOW_NORMAL);
cv::namedWindow("Camera4", WINDOW_NORMAL);
cv::namedWindow("Camera5", WINDOW_NORMAL);
cv::namedWindow("Camera6", WINDOW_NORMAL);
while (true) {
if (cap0.grab()) {
cap0.retrieve(ca1);
}
if (!cap0.grab()) {
std::cout << "camera 0 cannot be grabbed\n";
}
if (cap1.grab()) {
cap1.retrieve(ca2);
}
if (!cap1.grab()) {
std::cout << "camera 1 cannot be grabbed\n";
}
if (cap2.grab()) {
cap2.retrieve(ca3);
}
if (!cap2.grab()) {
std::cout << "camera 2 cannot be grabbed\n";
}
if (cap3.grab()) {
cap3.retrieve(ca4);
}
if (!cap3.grab()) {
std::cout << "camera 3 cannot be grabbed\n";
}
if (cap4.grab()) {
cap3.retrieve(ca5);
}
if (!cap4.grab()) {
std::cout << "camera 4 cannot be grabbed\n";
}
if (cap5.grab()) {
cap3.retrieve(ca6);
}
if (!cap5.grab()) {
std::cout << "camera 5 cannot be grabbed\n";
}
cv::imshow("Camera1", ca1);
cv::imshow("Camera2", ca2);
cv::imshow("Camera3", ca3);
cv::imshow("Camera4", ca4);
cv::imshow("Camera5", ca5);
cv::imshow("Camera6", ca6);
char c = waitKey(1);
if (c == 'q') {
destroyAllWindows();
break;
}
}
cap0.release();
cap1.release();
cap2.release();
cap3.release();
cap4.release();
cap5.release();
return 0;
}
Сбой компиляции в cap4.grab (),в основном это говорит, что камера 4 и 5 не могут быть схвачены (открыты).Может кто-нибудь, пожалуйста, помогите?Заранее большое спасибо.