#include <QTimer>
#include <QDebug>
#include <QThread>
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "zbar.h"


MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
      , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->mTimer = new QTimer(this);

    connect(this->mTimer, &QTimer::timeout, this, [this]
            {
                cv::Mat matrix;
                this->mCap >> matrix;

                if(matrix.data == nullptr)
                    return ;

                QImage cvImg  = QImage((uchar*)matrix.data, matrix.size().width, matrix.size().height, matrix.step, QImage::Format_RGB888);//0xffRRGGBB (24bit)
                auto swapedImage = cvImg.rgbSwapped();

                QPixmap image(QPixmap::fromImage(swapedImage));
                ui->label->setPixmap(image);
            });
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked() noexcept
{
    qDebug() << this->mCap.open(0);

    this->mTimer->start(50);
}
void sharpen(const cv::Mat &image, cv::Mat &result);


void MainWindow::on_btnQRRead_clicked()
{
    cv::Mat matrix;
#if 0 //static
    matrix = cv::imread("C:/YourFullPath/YourFileName.png"); // or mTemp
#else //camera
   this->mCap >> matrix;
#endif

    if(matrix.data == nullptr)
        return ;

    QStringList resultList;

    zbar::ImageScanner scanner;
    scanner.set_config(zbar::ZBAR_QRCODE, zbar::ZBAR_CFG_ENABLE , 1);

    cv::Mat imGray;
    cv::cvtColor(matrix, imGray, cv::COLOR_BGR2GRAY);

    zbar::Image image(imGray.cols, imGray.rows, "Y800", (uchar *)imGray.data, imGray.cols * imGray.rows);
    qDebug() << scanner.scan(image);

    for(auto symbol = image.symbol_begin(); symbol != image.symbol_end(); ++symbol)
    {
        QString result;
        result = QString::fromStdString(symbol->get_data());
        resultList.push_back(result);
    }
    cv::imshow("test", imGray);

    qDebug() << resultList;
}

http://naver.me/IF6payOn

 

네이버 클라우드

소중한 폰 사진을 안전하게 보관하고, 함께보기로 가족, 친구들과 손쉽게 공유해 보세요!

cloud.naver.com

소스와 lib 묶음은 해당링크 참조

 

os : windows 10 - 64bit

 

compile kit : mingw32 bit / qt 5.11.3 /zbar lib /opencv 사용

 

 

 

 

 

 

 

 

 

 

# qr 데이터 사용시 주의 사항

# qr의 회전 및 좌우반전에 인식률이 크게 영향을받음

+ Recent posts