photo mosaic 拼图马赛克

photo mosaic 好多张图片拼成一张完整的图片

原理:
读取原始图片,进行分割,分析每个小块RGB均值,并存储。
读取若干图片,提取并存储各个图片的RGB均值。与原始图片的每个小块进行匹配。
可以采用OpenMP进行并行加速

通过选择等级还可以设置最后 生成图片的“质量”,“清晰度”,并导出到本地。

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QTextStream>
#include <QBoxLayout>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    QString s = QCoreApplication::applicationDirPath ();
    qDebug()<<s;
    ui->setupUi(this);
    m_matchflag = -1;
    m_wnum = 0;
    m_hnum = 0;
    m_zoomBase = 1;
    m_zoomMos = 1;
    ui->zoomBig1->setVisible(false);
    ui->zoomBig2->setVisible(false);
    ui->zoomSmall1->setVisible(false);
    ui->zoomSmall2->setVisible(false);
    m_base = new QLabel(this);
    m_mosaic = new QLabel(this);
    m_mosaicImg = new QImage();
    m_baseImg2 = new QImage();
    m_baseImg = new IplImage();
    m_saveDialog = new MsaveDialog(this);
    m_saveDialog->hide();

    connect(ui->baseimg, QPushButton::clicked,this,MainWindow::askMainImagePath);
    connect(ui->subimg, QPushButton::clicked,this,MainWindow::askSubImageDir);
    connect(ui->start, QPushButton::clicked,this,MainWindow::startLoadeImgInfo);
    connect(m_saveDialog,MsaveDialog::saveMosaic,this,MainWindow::saveMosaic);
    ui->scrollArea->setWidget(m_base);
    ui->scrollArea_2->setWidget(m_mosaic);
    ui->baseimg->setStyleSheet("QPushButton"
                               "{"
                               "border-radius:15px;"
                               " background-color: rgb(0, 170, 255);"
                               "color: rgb(255, 255, 255);"
                               "font-size:26px;"
                               "font-family:System;"
                               "}"
                               "QPushButton:pressed{"
                               "background:rgb(86, 128, 136);"
                               "}");
    ui->subimg->setStyleSheet("QPushButton"
                              "{"
                              "border-radius:15px;"
                              " background-color: rgb(0, 170, 255);"
                              "color: rgb(255, 255, 255);"
                              "font-size:26px;"
                              "font-family:System;"
                              "}"
                              "QPushButton:pressed{"
                              "background:rgb(86, 128, 136);"
                              "}");
    ui->start->setStyleSheet("QPushButton"
                             "{"
                             "border-radius:15px;"
                             " background-color: rgb(150,150,150);"
                             "color: rgb(255, 255, 255);"
                             "font-size:26px;"
                             "font-family:System;"
                             "}"
                             );

}



void MainWindow::askSubImageDir()
{
    QString subFilePath = QFileDialog::getExistingDirectory(0, "Select the directory of pictures",
                                                            
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值