我使用带有c ++的opencv库,当我从两个流中读取帧时,一段时间(当存在噪声时)cv::VideoCapture
返回camera1帧而不是camera2,感谢任何想法。
class camera {
public:
cv::VideoCapture cap;
bool open(const cv::String &filename)
{
cap.open(filename, cv::CAP_FFMPEG);
}
void read(cv::UMat &frame)
{
Mat fr;
cap >> fr;
if(!fr.empty())
{
frame = fr;
}
}
}
和程序的主要方法:
int main()
{
namedWindow("camera1");
namedWindow("camera2");
camera camera1;
camera camera2;
camera1.open("rtsp://192.168.1.2/test");
camera2.open("rtsp://192.168.1.2/test2");
while(true)
{
Mat frame1;
Mat frame2;
camera1.read(frame1);
camera2.read(frame2);
imshow("camera1", frame1);
imshow("camera2", frame2);
waitkey(30);
}
return 0;
}