qtcreator 中使用opencv处理图片

在opencv通常使用imread读取图片,但是在Qt creator中的资源文件的路径一般为:/xxx/xxx/xxx.png这个路径使用imread是无法读取的,但是可以使用imdecode读取,首先把图片读取到buffer中,然后在用imdecode读取。

QFile file(":/image/images/people2.jpg");
    if(!file.open(QFile::ReadOnly))
    {
        qDebug<<"读取失败";
    }else{
                 QByteArray ba = file.readAll();
                Mat img = imdecode(vector<char>(ba.begin(), ba.end()), 1);
    }

关于图片路径问题
新建QT 资源qrc文件,然后添加已有文件,这时候路径以qrc的目录为参考,
(“:/source/images/source.jpg”));//images.qrc跟images文件夹为同一路径
"😕"为当前路径,也就是.qrc的文件路径
在这里插入图片描述
显示图片到label

    QFile target(":/source/images/target.jpg");
    if(!target.open(QIODevice::ReadOnly))
    {
        qDebug("读取失败99999999999");
    }else{
          QByteArray ba = target.readAll();
          target_img = imdecode(vector<char>(ba.begin(), ba.end()), 1);
          QImage img = QImage((uchar*)target_img.data,target_img.cols,target_img.rows,target_img.step,QImage::Format_RGB888);
          ui->label->setPixmap(QPixmap::fromImage(img));
          ui->label->resize(ui->label->pixmap()->size());
    }

label显示动态数据

    QString show;
    start = clock();
    cv::Mat H = cv::findHomography(preFeas, points1, cv::RANSAC);
    end = clock();
    show.setNum(end - start);
    ui->label->setText(show);

qt处理时间差问题

  #include <qdatetime.h>
  QDateTime startTime=  QDateTime::currentDateTime();
  Sleep(5000);
  QDateTime endTime=  QDateTime::currentDateTime();
  qint64 intervalTime = startTime.secsTo(endTime); //单位秒
  qint64 intervalTimeMS = startTime.msecsTo(endTime);//单位毫秒

pro文件中的一些疑问
如pro文件中:INCLUDEPATH += $$PWD/lib/x64-win64

$$PWD

表示的意思就是pro文件所在的目录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞同学

随时为您服务

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值