• 矩阵图片使用Qt显示openCV矩阵图片


    文章结束给大家来个程序员笑话:[M]

        1.首先配置QtCreator

      可以参见 http://blog.csdn.net/cc7829290/article/details/8984706

     应用的QtCreator,如果应用的其他编译器须要共事配置好Qt和openCV

        2.首先应用Qt建立一个ui界面

        绘制2个按钮和一个label

        矩阵和图片

        3.在头文件声明一个Mat类和一个QImage类

        .处理添加两个按钮的slot;

        并写入并分别写入如下代码

    void MainWindow::on_openPushButton_clicked()
    {
        QString filename = QFileDialog::getOpenFileName(this,tr("Open Image"),"",tr("Image File(*.bmp *.jpg *.jpeg *.png)"));
        QTextCodec *code = QTextCodec::codecForName("gb18030");
        std::string name = code->fromUnicode(filename).data();
        image = cv::imread(name);
        if(!image.data)
        {
            QMessageBox msgBox;
            msgBox.setText(tr("image data is null"));
            msgBox.exec();
        }
        else
        {
            cv::cvtColor(image,image,CV_BGR2RGB);
            img = QImage((const unsigned char*)(image.data),image.cols,image.rows,QImage::Format_RGB888);
            ui->label->clear();
            ui->label->setPixmap(QPixmap::fromImage(img));
            ui->processPushButton->setEnabled(true);
            ui->label->resize(ui->label->pixmap()->size());
        }
    }
    
    void MainWindow::on_processPushButton_clicked()
    {
        cv::flip(image,image,1);
        img = QImage((const unsigned char*)(image.data),image.cols,image.rows,QImage::Format_RGB888);
        ui->label->setPixmap(QPixmap::fromImage(img));
    }
        每日一道理
    喜马拉雅直冲霄汉,可上面有攀爬者的旗帜;撒哈拉沙漠一望无垠,可里面有跋涉者的脚印;阿尔卑斯山壁立千仞,可其中有探险者的身影;雅鲁藏布江湍急浩荡,可其中有勇敢者的故事。

        须要注意的是

    QTextCodec *code = QTextCodec::codecForName("gb18030");
        std::string name = code->fromUnicode(filename).data();

        这两句是为了应用中文路径,字符串中改成其他支持的中文的格式也可以

    cv::cvtColor(image,image,CV_BGR2RGB);

        在事实图像前一定要转换下

        因为openCV应用的图像通道是BGR的而QImage应用的图像通道的RGB的;

        4.显示效果如下

        矩阵和图片

        原始代码下载

        http://download.csdn.net/detail/cc7829290/5474653

        

        

    文章结束给大家分享下程序员的一些笑话语录: AdobeFlash拖垮Windows拖垮IE!又拖垮Linux拖垮Ubuntu拖垮FirxEox!还拖垮BSD拖垮MacOS拖垮Safri!简直无所不拖!AdobeFlash滚出网路世界!不要以为市占有率高就可以持续出烂货产品!以后替代品多得是!

    --------------------------------- 原创文章 By
    矩阵和图片
    ---------------------------------

  • 相关阅读:
    剑指offer——72圆圈中最后剩下的数字
    剑指offer——71扑克牌中的顺子
    剑指offer——70n个骰子的点数
    剑指offer——69队列的最大值
    剑指offer——68队列的最大值
    剑指offer——67左旋转字符串
    剑指offer——66翻转字符串
    剑指offer——65和为S的连续正数序列
    「日常训练」COMMON 约数研究(HYSBZ-1968)
    「暑期训练」「基础DP」免费馅饼(HDU-1176)
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3106643.html
Copyright © 2020-2023  润新知