资源简介
使用c++,通过一次二次三次插值和函数映射,实现图像的扭曲,球面化,TPS变形。
代码片段和文件信息
#include “cv.h“
#include “highgui.h“
using namespace cv; //下面的所有cv相关类型不用加上前缀了
#include
#include
#include
using namespace std;
#include
#define pi 3.1415926
#define x_center 207
#define y_center 207
/*void sphere( Mat &img)
{
int ij=0i1=0j1=0;
int i0=img.cols/2;
int j0=img.rows/2;
for(i=1;i1 for( j=0;j1 //int i1=0j1=0;
i1 = cos(atan(j/i)) * sin((π*sqrt(i*i +j*j)) / (2*R)) * R;
j1 = sin(atan(j/i)) * sin((π*sqrt(i*i +j*j)) / (2*R)) * R;
img.at(j1+j0i1+i0)[0]=img.at(ij)[0];
img.at(j1+j0i1+i0)[1]=img.at(ij)[1];
img.at(j1+j0i1+i0)[2]=img.at(ij)[2];
img.at(-j1+j0i1+i0)[0]=img.at(ij)[0];
img.at(-j1+j0i1+i0)[1]=img.at(ij)[1];
img.at(-j1+j0i1+i0)[2]=img.at(ij)[2];
img.at(j1+j0-i1+i0)[0]=img.at(ij)[0];
img.at(j1+j0-i1+i0)[1]=img.at(ij)[1];
img.at(j1+j0-i1+i0)[2]=img.at(ij)[2];
img.at(-j1+j0-i1+i0)[0]=img.at(ij)[0];
img.at(-j1+j0-i1+i0)[1]=img.at(ij)[1];
img.at(-j1+j0-i1+i0)[2]=img.at(ij)[2];
}
j1=0;
}
};*/
void near(double xxdouble yyint xint yMat imgMat& img1){
int x1=int (xx);
double u=xx-double(x1);
if(u>=0.5) x1+=1;
int y1=int (yy);
double v=yy-double(y1);
if(v>=0.5) y1=y1+1;
img1.at(xy)[0]=img.at(x1y1)[0];
img1.at(xy)[1]=img.at(x1y1)[1];
img1.at(xy)[2]=img.at(x1y1)[2];
}
void bilinear(double xxdouble yyint xint yMat imgMat& img1){
int x1=int (xx);
double u=xx-double(x1);
int y1=int (yy);
double v=yy-double(y1);
img1.at(xy)[0]=(1-u)*(1-v)*img.at(x1y1)[0]+(1-v)*u*img.at(x1+1y1)[0]+(1-u)*v*img.at(x1y1+1)[0]+u*v*img.at(x1+1y1+1)[0];
img1.at(xy)[1]=(1-u)*(1-v)*img.at(x1y1)[1]+(1-v)*u*img.at(x1+1y1)[1]+(1-u)*v*img.at(x1y1+1)[1]+u*v*img.at(x1+1y1+1)[1];
img1.at(xy)[2]=(1-u)*(1-v)*img.at(x1y1)[2]+(1-v)*u*img.at(x1+1y1)[2]+(1-u)*v*img.at(x1y1+1)[2]+u*v*img.at(x1+1y1+1)[2];
}
double S(double x){
double Sx;
x=fabs(x);
if(x<1)
Sx=1-2*x*x+x*x*x;
else if(x<2)
Sx=4-8*x+5*x*x-x*x*x;
else
Sx=0;
return Sx;
}
void bicubic(double xxdouble yyint xint yMat imgMat& img1){
int x1=int (xx);
double u=xx-double(x1);
int y1=int (yy);
double v=yy-double(y1);
double e;
double temp1=S(1+u)*img.at(x1-1y1-1)[0]+S(u)*img.at(x1y1-1)[0]+S(u-1)*img.at(x1+1y1-1)[0]+S(u-2)*img.at(x1+2y1-1)[0];
double temp2=S(1+u)*img.at(x1-1y1)[0]+S(u)*img.at(x1y1)[0]+S(u-1)*img.at(x1+1y1)[0]+S(u-2)*img.at(x1+2y1)[0];
double temp3=S(1+u)*img.at(x1-1y1+1)[0]+S(u)*img.at(x1y1+1)[0]+S(u-1)*img.at(x1+1y1+1)[0]+S(u-2)*i
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 10555 2014-11-21 11:10 011935171448086.jpg
文件 489218 2014-11-21 10:27 example.png
目录 0 2014-11-23 23:55 image\
目录 0 2014-11-23 21:53 image\Debug\
文件 102400 2014-11-23 22:05 image\Debug\image.exe
文件 731068 2014-11-23 22:05 image\Debug\image.ilk
文件 2190336 2014-11-23 22:05 image\Debug\image.pdb
目录 0 2014-11-20 11:58 image\image\
文件 3061 2014-11-21 10:29 image\image.psess
文件 18546688 2014-11-23 23:55 image\image.sdf
文件 977 2014-11-21 10:29 image\image.sln
文件 43008 2014-11-23 23:55 image\image.v11.suo
目录 0 2014-11-23 22:05 image\image\Debug\
文件 482 2014-11-23 22:05 image\image\Debug\cl.command.1.tlog
文件 13572 2014-11-23 22:05 image\image\Debug\CL.read.1.tlog
文件 192 2014-11-23 22:05 image\image\Debug\CL.write.1.tlog
文件 48 2014-11-23 22:05 image\image\Debug\image.lastbuildstate
文件 2524 2014-11-23 22:05 image\image\Debug\image.log
文件 2 2014-11-23 22:05 image\image\Debug\li
文件 2 2014-11-23 22:05 image\image\Debug\li
文件 2 2014-11-23 22:05 image\image\Debug\li
文件 2 2014-11-23 22:05 image\image\Debug\li
文件 2 2014-11-23 22:05 image\image\Debug\li
文件 2 2014-11-23 22:05 image\image\Debug\li
文件 2 2014-11-23 22:05 image\image\Debug\li
文件 2 2014-11-23 22:05 image\image\Debug\li
文件 2 2014-11-23 22:05 image\image\Debug\li
文件 2 2014-11-23 22:05 image\image\Debug\li
文件 2 2014-11-23 22:05 image\image\Debug\li
文件 2 2014-11-23 22:05 image\image\Debug\li
文件 2 2014-11-23 22:05 image\image\Debug\li
............此处省略130个文件信息
相关资源
- 史上最全C++代码
- More Exceptional C++中文版高清完整.pdf
- 华为C&C++语言安全编程规范_V3.1.pdf
- essential c++ 中文版 侯捷 PDF
- 用C++mfc做的一系列小游戏
- Qt实现的迷宫与魔塔游戏 源码迷宫模
- C++课程设计,高校人员信息管理系统
- Visual C++代码 获取本地网络信息
- 基于C++的银行家算法模拟实现
- 相对定向 摄影测量 C++完整能运行代码
- opencv+c++实现人脸识别
- 免费:C++ Primer Plus 6th Edition英文版p
- 伐木工控制台小游戏源码VS2015 C++
- 基于OPENCV的完整图像处理程序
- 传智扫地僧王保明 讲义
- MFC+文档图书管理系统C++
- 图书管理系统软件设计C++源码
- C++11实现多线程电梯运行
- MFC下opencv的图像处理源码
- C++ 进程内存搜索,特征码极速定位,
- c++基础和进阶课堂讲义完整版
- Installshield for VC++ 6.0 安装包制作工具
- C++17 stl cook book 中文版
- visual C++ 7.0完整安装程序
- VC++深入详解part1
- C++ 后台服务程序DeamonATE 可开机启动
- 用C++实现简易的文本编辑器
- 地震数据SEGY格式的读写 C++
- 用C++ 实现 防火墙 源代码
- CEC2017测试函数C++源码、和文献介绍
评论
共有 条评论