• 大小: 9.51MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-06
  • 语言: C/C++
  • 标签: c++  图像  插值  

资源简介

使用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\link-cvtres.read.1.tlog
     文件           2  2014-11-23 22:05  image\image\Debug\link-cvtres.write.1.tlog
     文件           2  2014-11-23 22:05  image\image\Debug\link-rc.read.1.tlog
     文件           2  2014-11-23 22:05  image\image\Debug\link-rc.write.1.tlog
     文件           2  2014-11-23 22:05  image\image\Debug\link.11960-cvtres.read.1.tlog
     文件           2  2014-11-23 22:05  image\image\Debug\link.11960-cvtres.write.1.tlog
     文件           2  2014-11-23 22:05  image\image\Debug\link.11960-rc.read.1.tlog
     文件           2  2014-11-23 22:05  image\image\Debug\link.11960-rc.write.1.tlog
     文件           2  2014-11-23 22:05  image\image\Debug\link.11960.read.1.tlog
     文件           2  2014-11-23 22:05  image\image\Debug\link.11960.write.1.tlog
     文件           2  2014-11-23 22:05  image\image\Debug\link.12716-cvtres.read.1.tlog
     文件           2  2014-11-23 22:05  image\image\Debug\link.12716-cvtres.write.1.tlog
     文件           2  2014-11-23 22:05  image\image\Debug\link.12716-rc.read.1.tlog
............此处省略130个文件信息

评论

共有 条评论