資源簡介
基于qt和opencv的圖片變形程序,包含球面鏡變形、B樣條變形、TPS變形三種變形方式
包含可執(zhí)行文件和工程源碼
代碼片段和文件信息
#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
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件?????786488??2014-10-22?13:11??可執(zhí)行文件\dmj.bmp
?????文件???53684238??2014-12-06?21:06??可執(zhí)行文件\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??可執(zhí)行文件
?????目錄??????????0??2014-12-06?20:14??源碼
-----------?---------??----------?-----??----
?????????????54524446????????????????????11
評(píng)論
共有 條評(píng)論