初入坑,有问题请指正。
首先,点击菜单栏插入选项,从文件目录中选取一张图片 。
附代码
void MainWindow::on_charu_triggered()
{
QString filename=QFileDialog::getOpenFileName(this,tr("Open Image"),QDir::homePath(),tr("(*.jpg)\n(*.png)\n(*.bmp)"));
ui->label->setPixmap(QPixmap(filename));
}
记得头文件#include <QString>,<QFileDialog>。(我没按格式写噢)
然后在灰度化按钮的槽函数里写代码,记得OpenCV的头文件。
MatConvertQImage mci;
cv::Mat imat = mci.QImage2cvMat(img);
cv::Mat gray;
cv::cvtColor(imat, gray, cv::COLOR_BGR2GRAY);
QImage image = mci.Mat2QImage(gray);
ui->label->clear();
ui->label->setPixmap(QPixmap::fromImage(image));
cv的Mat和Qt的QImage互相转化的函数参考这两位大佬。
把cv::Mat转化为QImage_liji_digital的博客-CSDN博客_mat转qimage
QImage与Mat格式相互转换_修行进行时的博客-CSDN博客_qimage转mat
效果如下:
只是简单的Demo,各种bug肯定很多,比如不插入图片直接按灰度化按钮之类的,再就是图片大小适应label大小的各种美化,都还没做,以后努力。ε≡٩(๑>₃<)۶