GPT答: |
7i24.cn
|
要使绘制的矩形持续存在,你需要在每一帧中重新绘制该矩形。可以通过在视频流的每个帧上调用相同的绘制函数来实现。
以下是一个示例代码,展示了如何在连续视频流上持续地画出一个矩形:
```cpp
#include <opencv2/opencv.hpp>
int main()
{
cv::VideoCapture cap("rtsp://your_rtsp_stream_url"); // 打开RTSP视频流
if (!cap.isOpened()) {
std::cout << "无法打开RTSP视频流" << std::endl;
return -1;
}
cv::Mat frame;
while (true) {
cap >> frame; // 读取下一帧
if (frame.empty()) {
break; // 视频结束
}
int roi_x = 100; // 矩形左上角x坐标
int roi_y = 100; // 矩形左上角y坐标
cv::rectangle(frame, cv::Rect(roi_x, roi_y, 300, 200), cv::Scalar(255, 255, 255), 2); // 绘制矩形
cv::imshow("Video", frame); // 显示当前帧
if(cv:waitKey(1)==27)
break;
}
cap.release();
return 0;
}
```
这段代码使用OpenCV库来处理和显示连续的RTSP视频流。它首先打开了指定的RTSP视频流,并循环读取每一帧。在每一帧上,它使用`cv::rectangle`函数绘制一个矩形,并将其显示出来。通过在每个循环迭代中重新绘制矩形,就可以使其持续存在于视频流中。
请注意,这只是一个示例代码,并没有处理错误或异常情况。你可能需要根据自己的需求进行适当的错误处理和异常处理。
|