我在使用以下代码时遇到了一些问题。我正在尝试将Mat设置为QLabel像素图。当我调用QLabel :: setPixmap()时,没有任何反应!对话框中的标签保持完全相同,显示占位符文本。它已被适当地提升为MyLabel。
//include stuff above
MyLabel::MyLabel(QWidget *parent): QLabel(parent)
{
boats = cv::imread("C:/boats.jpg");
setPixmap(boats);
}
void MyLabel::setPixmap(cv::Mat image){
cv::Mat converted;
cv::cvtColor(image, converted, CV_BGR2RGB);
QImage result = QImage((const unsigned char*)(converted.data),
converted.cols, converted.rows, QImage::Format_RGB888);
QLabel::setPixmap(QPixmap::fromImage(result));
}
我也尝试过以下方式设置像素图:
QLabel::setPixmap(QPixmap("C:/boats.jpg"));
但这会产生同样的效果。有什么想法吗?
答案 0 :(得分:1)
您应该将图像设置为界面。例如,您可以这样设置:
ui->label_15->setPixmap(QPixmap::fromImage(result));