qpixmap转H265 cv::mat
时间: 2023-08-20 09:05:29 浏览: 116
要将QPixmap转换为H265编码的cv::Mat,你需要执行以下步骤:
1. 将QPixmap转换为QImage:
```cpp
QImage image = pixmap.toImage();
```
2. 将QImage转换为cv::Mat:
```cpp
cv::Mat mat(image.height(), image.width(), CV_8UC4, image.bits(), image.bytesPerLine());
cv::cvtColor(mat, mat, cv::COLOR_RGBA2BGR);
```
3. 将cv::Mat编码为H265:
```cpp
cv::VideoWriter writer;
writer.open("output.mp4", cv::VideoWriter::fourcc('H', '2', '6', '5'), 30, cv::Size(mat.cols, mat.rows));
if (writer.isOpened()) {
writer.write(mat);
writer.release();
} else {
// 处理无法打开编码器的情况
}
```
请注意,这只是一个简单的示例,你可能需要根据你的具体需求进行调整。
相关问题
cv::Mat 转Qpixmap
要将 OpenCV 的 `cv::Mat` 转换为 Qt 的 `QPixmap`,你可以使用以下步骤:
1. 创建一个 `QImage` 对象,并从 `cv::Mat` 中复制数据。使用 `cv::Mat` 的数据指针和相关参数来构造 `QImage`,确保图像格式和数据的一致性。
```cpp
cv::Mat image; // 假设有一个 cv::Mat 对象
QImage qimage(image.data, image.cols, image.rows, image.step, QImage::Format_RGB888);
```
在上述示例中,我们假设 `cv::Mat` 对象是 RGB 格式的图像,因此我们使用 `QImage::Format_RGB888` 来构造 `QImage`。
2. 使用 `QPixmap` 构造函数将 `QImage` 转换为 `QPixmap` 对象。
```cpp
QPixmap pixmap = QPixmap::fromImage(qimage);
```
现在,你就可以使用 `pixmap` 对象来显示或处理图像了。
以下是一个完整的示例代码:
```cpp
cv::Mat image; // 假设有一个 cv::Mat 对象
// 将 cv::Mat 转换为 QImage
QImage qimage(image.data, image.cols, image.rows, image.step, QImage::Format_RGB888);
// 将 QImage 转换为 QPixmap
QPixmap pixmap = QPixmap::fromImage(qimage);
// 使用 pixmap 进行显示或处理
```
请确保在转换过程中,图像的格式和数据是一致的,以避免出现错误或异常情况。
class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); int save_img = 0; signals: void detTag0(QPixmap img); void detTag1(QPixmap img); private slots: void findCam0(); void findCam1(); void openCam0(); void openCam1(); void startDetTag0(); void startDetTag1(); bool serialport_init(); void open_serialport(); void on_pushButton_2_clicked(); void on_pushButton_5_clicked(); private: Ui::MainWindow *ui; //相机指针 CMvCamera* camera0; CMvCamera* camera1; CamThread* cam0Thread; CamThread* cam1Thread; cv::Mat* img0=new Mat(640,480,CV_8UC1,cv::Scalar(0)); cv::Mat* img1=new Mat(640,480,CV_8UC1,cv::Scalar(0)); bool detFalg0 = false; bool detFalg1 = false; ApriltagDetector *apriltagDetector0 ; ApriltagDetector *apriltagDetector1 ; QSerialPort m_serialport; MV_CC_DEVICE_INFO_LIST m_stDevList; void static __stdcall ImageCallBack0(unsigned char * pData, MV_FRAME_OUT_INFO_EX* pFrameInfo, void* pUser); void static __stdcall ImageCallBack1(unsigned char * pData, MV_FRAME_OUT_INFO_EX* pFrameInfo, void* pUser); }; #endif // MAINWINDOW_H
这是一个基于 Qt 框架开发的主窗口类,其中包含了相机的初始化、图像回调函数、串口的初始化等功能。该类中定义了两个信号 detTag0 和 detTag1,分别用于传递相机拍摄到的图像给 AprilTag 检测器进行处理。此外,该类中还包含了两个私有变量 detFalg0 和 detFalg1,用于标记相机是否正在进行 AprilTag 检测。
阅读全文
相关推荐

















