创建分辨率为1600*1300的 cv::Mat 变量
时间: 2024-03-27 08:40:34 浏览: 11
可以使用以下代码创建分辨率为1600*1300的cv::Mat变量:
```c++
cv::Mat image(1300, 1600, CV_8UC3);
```
其中,1300是图像的高度,1600是图像的宽度,CV_8UC3表示图像通道数为3,每个像素点的数据类型为8位无符号整数。这个变量可以用来存储一张RGB图像,每个像素点需要3个通道来表示。
相关问题
QByteArray*转为cv::Mat
将 QByteArray 转换为 cv::Mat 的步骤如下:
1. 将 QByteArray 转换为 std::string:
```cpp
std::string data(qByteArrayData, qByteArraySize);
```
2. 将 std::string 转换为 cv::Mat:
```cpp
cv::Mat mat = cv::imdecode(cv::Mat(1, data.size(), CV_8UC1, (void*)data.data()), cv::IMREAD_UNCHANGED);
```
这里使用了 OpenCV 的 imdecode 函数,将二进制数据解码为图像数据。需要注意的是,如果 QByteArray 存储的是 RGB 或者 RGBA 数据,需要在转换之前将其转换为 BGR 或者 BGRA 格式。
IplImage*转cv::Mat
可以使用以下代码将IplImage*转换为cv::Mat:
```cpp
IplImage* ipl_image_ptr;
cv::Mat mat_image = cv::cvarrToMat(ipl_image_ptr);
```
这里使用了OpenCV库的cvarrToMat()函数,将IplImage*转换为cv::Mat。