16,794
社区成员




QImage格式 | OpenCV格式 |
---|---|
QImage::Format_Indexed8 | CV_8UC1 |
QImage::Format_RGB32 | CV_8UC4 |
QImage::Format_ARGB32 | CV_8UC4 |
QImage::Format_Grayscale8 | CV_8UC1 |
例如,将一个QImage转换为一个8位灰度图像的Mat对象可以使用以下代码:
QImage image;
// 加载图像...
if (image.format() != QImage::Format_Grayscale8) {
image = image.convertToFormat(QImage::Format_Grayscale8);
}
cv::Mat mat(image.height(), image.width(), CV_8UC1, image.bits(), image.bytesPerLine());
在上面的代码中,如果QImage的格式不是8位灰度图像,则需要先将其转换为8位灰度图像格式。然后,创建一个与QImage大小相同的Mat对象,并将QImage的数据指针和每行字节数传递给Mat构造函数。这样就可以将QImage转换为OpenCV图像。