簡體   English   中英

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM