• 大小: 16.06MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-07
  • 语言: 其他
  • 标签: qt  

资源简介

基于qt和opencv的图片变形程序,包含球面镜变形、B样条变形、TPS变形三种变形方式 包含可执行文件和工程源码

资源截图

代码片段和文件信息

#include “dialog.h“
#include “ui_dialog.h“
#include “math.h“

Scene::Scene(QWidget *parent) :
    QGraphicsScene(parent)
{
    linenum = 0;
}
Scene::~Scene()
{
    ;
}

void Scene:: mousePressEvent(QGraphicsSceneMouseEvent *e)
{
    mousedown[0] = e->scenePos().x();
    mousedown[1] = e->scenePos().y();
    if(linenum<16)
    {
        //line[linenum] = addLine(mousedown[0]mousedown[1]mousedown[0]+1mousedown[1]+1QPen(QColor(25500)5));
        linenum ++;
    }
    updatemousedown();
}

void Scene:: mouseMoveEvent(QGraphicsSceneMouseEvent *e)
{
    mousemove[0] = e->scenePos().x();
    mousemove[1] = e->scenePos().y();
    //line[linenum-1]->setLine(QLineF(mousedown[0]mousedown[1]mousemove[0]mousemove[1]));
    updatemousemove();
}

void Scene:: mouseReleaseEvent(QGraphicsSceneMouseEvent *e)
{
    mouseup[0] = e->scenePos().x();
    mouseup[1] = e->scenePos().y();
    //line[linenum-1]->setLine(QLineF(mousedown[0]mousedown[1]mouseup[0]mouseup[1]));
    //addLine(mousedown[0]mousedown[1]mouseup[0]mouseup[1]QPen(QColor(25500)5));
    updatemouseup();
}

Dialog::Dialog(QWidget *parent) :
    QDialog(parent)
    ui(new Ui::Dialog)
{
    ui->setupUi(this);

    sel = 0;
    transform = 0;
    for(int i = 0; i < 2; i++)
        for(int j = 0; j < 32; j++)
            for(int k = 0; k < 32; k++)
                ctl[i][j][k] = 0;

    tpsn = 0;
    for(int i = 0; i < 16; i++)
    {
        tpspx[i] = 0;
        tpspy[i] = 0;
        tpsqx[i] = 0;
        tpsqy[i] = 0;
    }

    this->image = new QImage();
    this->scene = new Scene();

    gvshow(“dmj.bmp“);

    connect(ui->bt_confirmSIGNAL(clicked())thisSLOT(confirm()));
    connect(ui->bt_recoverSIGNAL(clicked())thisSLOT(recover()));
    connect(ui->rb_bicubSIGNAL(clicked())thisSLOT(radio()));
    connect(ui->rb_bilinSIGNAL(clicked())thisSLOT(radio()));
    connect(ui->rb_bsSIGNAL(clicked())thisSLOT(radio()));
    connect(ui->rb_cir1SIGNAL(clicked())thisSLOT(radio()));
    connect(ui->rb_cir2SIGNAL(clicked())thisSLOT(radio()));
    connect(ui->rb_nearSIGNAL(clicked())thisSLOT(radio()));
    connect(ui->rb_noneSIGNAL(clicked())thisSLOT(radio()));
    connect(ui->rb_tpsSIGNAL(clicked())thisSLOT(radio()));
    connect(sceneSIGNAL(updatemousedown())thisSLOT(mdown()));
    connect(sceneSIGNAL(updatemousemove())thisSLOT(mmove()));
    connect(sceneSIGNAL(updatemouseup())thisSLOT(mup()));
}

Dialog::~Dialog()
{
    delete image;
    delete ui;    
}

void Dialog:: mdown()
{
    mousedown[0] = scene->mousedown[0];
    mousedown[1] = scene->mousedown[1];
    /*
    if(scene->linenum<16)
    {
        scene->line[scene->linenum] = scene->addLine(mousedown[0]mousedown[1]mousedown[0]mousedown[1]QPen(QColor(25500)15));
        scene->linenum ++;
    }
    */
    ui->gv->setScene(scene);
    ui->gv->show();
}
void Dialog:: mmove()
{
    mousem

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     786488  2014-10-22 13:11  可执行文件\dmj.bmp

     文件   53684238  2014-12-06 21:06  可执行文件\NA1_boxed.exe

     文件      25503  2014-12-06 16:58  源码\dialog.cpp

     文件       3592  2014-12-06 16:50  源码\dialog.h

     文件       5145  2014-12-01 10:01  源码\dialog.ui

     文件        198  2014-11-30 19:06  源码\main.cpp

     文件        612  2014-11-30 19:17  源码\NA1.pro

     文件      18219  2014-12-06 16:25  源码\NA1.pro.user

     文件        451  2014-12-16 10:08  readme.txt

     目录          0  2014-12-06 21:15  可执行文件

     目录          0  2014-12-06 20:14  源码

----------- ---------  ---------- -----  ----

             54524446                    11


评论

共有 条评论