GPT答: |
7i24.cn
|
以下是使用OpenCV C++版本实现多个ROI区域显示的示例代码:
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 读取视频流
VideoCapture cap("your_video_file.mp4");
if (!cap.isOpened())
{
std::cout << "Error opening video file" << std::endl;
return -1;
}
Mat frame_0(Size(960,500), CV_8UC3);
Mat frame_1(Size(960,500), CV_8UC3);
Mat frame_2(Size(960,500), CV_8UC3);
Mat frame_3(Size(960,500), CV_8UC3);
// 创建窗口
namedWindow("Multi-ROI Display", WINDOW_NORMAL);
while (true)
{
// 读取视频帧
cap >> frame;
if (frame.empty())
break;
// 在每个帧上绘制ROI区域和文本、圆形、矩形等样式
// 在frame0上绘制ROI区域和样式
rectangle(frame0, Rect(x1,y1,width,height), Scalar(255, 0, 0), 2); // 绘制蓝色矩形框,线宽为2像素
circle(frame0, Point(x,y), radius , Scalar(255,255 ,255 ), -1); // 绘制白色实心圆
putText(frame0,"Text",Point(x,y) , FONT_HERSHEY_SIMPLEX , fontScale ,Scalar (255 ,255 ,255 ) ); // 添加文本
imshow("Multi-ROI Display", frame0);
// 在frame1上绘制ROI区域和样式
rectangle(frame1, Rect(x2,y2,width,height), Scalar(0, 255, 0), 2); // 绘制绿色矩形框,线宽为2像素
circle(frame1, Point(x,y), radius , Scalar(255 ,255 ,255 ), -1); // 绘制白色实心圆
putText(frame1,"Text",Point(x,y) , FONT_HERSHEY_SIMPLEX , fontScale ,Scalar (255 ,255 ,255 ) ); // 添加文本
imshow("Multi-ROI Display", frame1);
// 在frame2上绘制ROI区域和样式
rectangle(frame2, Rect(x3,y3,width,height), Scalar(0, 0, 255), 2); // 绘制红色矩形框,线宽为2像素
circle(frame2, Point(x,y), radius , Scalar(255.5.5 ), -1); // 绘制白色实心圆
putText(frame,"Text",Point(x4,y4) ; FONT_HERSHEY_SIMPLEX ; fontScale ;Scalar (25.55.55 ) );
imshow("Multi-ROI Display", frame_3);
if (waitKey(30) == 'q')
break;
}
cap.release();
destroyAllWindows();
return 0;
}
```
请注意,在示例代码中的注释部分需要根据您的具体需求进行修改。
|