Opencv -从数组创建Mat
Opencv - Create Mat from array
我尝试从uchar*创建mat对象。我找不到一个有用的转换。我的代码如下;
uchar* urgbImg; // this value is created another function
Mat img_argb(HEIGHT, WIDTH, CV_8UC4, urgbImg);
Mat img_rgb(HEIGHT, WIDTH, CV_8UC3);
img_argb.convertTo(img_rgb, CV_8UC3);
cv::imwrite("RGB.png", img_rgb);
QImage img1(urgbImg, WIDTH, HEIGHT, QImage::Format_ARGB32);
QImage img2 = img1.convertToFormat(QImage::Format_RGB32);
QFile file2(QString::fromStdString("QRGB.png"));
file2.open(QIODevice::WriteOnly);
img2.save(&file2,"PNG",100);
file2.close();
QRGB文件是一个很好的结果,但不是RGB文件。我有一个uchar数组,所以它是8位的
我尝试了CV_8UC3(没有从CV_8UC4转换),CV_32SC3和CV_32SC4。所有的结果都很糟糕。如何从uchar*创建rgb图像?
convertTo()
不将CV_8UC4图像转换为CV_8UC3
你应该使用cvtColor()
函数
Mat img_argb(HEIGHT, WIDTH, CV_8UC4, urgbImg);
Mat img_rgb;
cvtColor(img_argb,img_rgb,COLOR_BGRA2BGR);
相关文章:
- 从数组创建 Mat 时,'cv::Mat' 和 'int' 类型不兼容
- 如何在 dlib 的 array2d 图像上从 dlib::rectangle 创建 cv::Mat<rgb_pixel> ?
- 在另一个分配的矩阵中为特定范围创建 cv::Mat 标头
- 'cv::Mat::type':非标准语法;使用 '&' 创建指向成员的指针
- 创建opencv Mat到2D网格
- 如何使用模板函数从缓冲区(T* 数据数组)创建 cv::Mat
- OpenCV: cv::Mat 无法从看似有效的数据中创建矩阵
- OpenCV 创建 MAT 并添加元素
- 在 opencv 中从 Mat 图像创建多个子图像?尝试为每个连接的组件创建子图像
- 如何使用avcodec从OpenCV::Mat类型的jpeg图像创建视频
- 在 Java 客户端中创建 Mat 对象,使用 opencv 从C++服务器发送
- C++/cv::Mat相当于使用memcpy创建IplImage
- 将cv::Mat A的每个成员与cv::Mat B合并,以创建一个cv::Mat C,结果为[A(x,y),B(x,y)
- 从指针创建Mat
- OpenCV从堆中的数组创建Mat
- OpenCV -如何从uint8_t指针创建Mat
- Opencv -从数组创建Mat
- Opencv从相机数据创建mat
- 从原始缓冲区数据创建Mat图像
- opencv C++从android NV21图像数据缓冲区创建Mat对象