资源简介
基于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
- 上一篇:live555实现H264实时流进行RTSP发送
- 下一篇:restful接口
相关资源
- QT推箱子小游戏(QT课程设计)
- Qt实现的RSA密钥生成器[2048bit], 和工
- qt的甘特图
- 基于QT的五子棋系统
- QT4.5官方_帮助文档_使用手册_英文版
- Qt5开发及第2版分卷二
- MinGW32-4.8.2.7z
- qt-4.8.4-x64-msvc2010.zip
- 从零开始学习音视频编程技术二十二
- Qt5.9.2+VS2017入门——透彻解析对应代码
- Qt游戏代码之坦克大战
- QTMinGw下已经编译好的gdal库
- PyQt4-4.11.3-gpl-Py2.7-Qt4.8.6-x64.exe
- QtitanRibbon3.zip
- QT实现基于freetype的TTF字体拆解
- Qt绘图编辑器涂鸦、画矩形、画椭圆形
- TimeLine2.rarQPainter时间轴绘制,实现刻
- 从零开始学习音视频编程技术十一
- STM32F4x7+freertos+lwip+ssl+MQTT(MDK5)源码
- 二维码定位符识别带
- 动态规划求解最短行驶路线问题[Flo
- 使用QSS的扁平化UI程序--成绩管理系统
- 我开发的2048小游戏
- 基于qt的温湿度监控系统
- Qt+OpenCV人脸识别
- 基于QT的酒店管理系统
- poppler-qt4开发库静态库、动态库及头文
- win32-QtAV编译所需资料
- Qt Http器 运行包
- Qt 5开发及第4版陆文周.zip
评论
共有 条评论