• 大小: 859KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: C/C++
  • 标签: 图像修复  

资源简介

很不错的资源啊。。欢迎大家来下载。基于VC++的图像修复源代码

资源截图

代码片段和文件信息

// amera.cpp: implementation of the Camera class.
//
//////////////////////////////////////////////////////////////////////

#include “stdafx.h“
#include “FastRBF.h“
#include “amera.h“
#include 
#include 
#include 
//#include 
using std::swap;

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

// Radius of trackball
#define TRACKBALL_R 0.85f

// Initial field of view of the camera
#define DEFAULT_FOV 0.8284271f

#define M_PI 3.14159265358979323846

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

Camera::Camera()
{
Init(); 
}

Camera::~Camera()
{

}

// Initialize parameters of the camera to the usual
// (i.e. at origin looking down negative Z axis etc.)
void Camera::Init()
{
pos[0] = homepos[0] = savepos[0] = 0;
pos[1] = homepos[1] = savepos[1] = 0;
pos[2] = homepos[2] = savepos[2] = 0;

rot = homerot = saverot = 0;

rotaxis[0] = homerotaxis[0] = saverotaxis[0] = 0;
rotaxis[1] = homerotaxis[1] = saverotaxis[1] = 0;
rotaxis[2] = homerotaxis[2] = saverotaxis[2] = 1;

fov = homefov = savefov = DEFAULT_FOV;
}


// Set the “home“ position of the camera
void Camera::SetHome(const float *_pos
     float _rot
     const float *_rotaxis
     float _fov)
{
homepos[0] = _pos[0]; homepos[1] = _pos[1]; homepos[2] = _pos[2];
homerot = _rot;
homerotaxis[0] = _rotaxis[0]; homerotaxis[1] = _rotaxis[1]; homerotaxis[2] = _rotaxis[2];
homefov = _fov;
}


// Set the “home“ position of the camera by reading it from a .xf file that
// specifies a transformation matrix
bool Camera::SetHome(const char *filename)
{
FILE *f = fopen(filename “r“);
if (!f)
return false;

float M[16];
for (int i=0; i < 4; i++)
for (int j=0; j < 4; j++)
fscanf(f “%f“ M+i+4*j);
fclose(f);

// Matrix -> Quat from GGems IV III.4 (Ken Shoemake)
// and Xform.h (Kari Pulli)
quat q;
float tr = M[0] + M[5] + M[10];
if (tr >= 0.0f) {
float s = sqrtf(tr + M[15]);
q[0] = s * 0.5f;
s = 0.5f / s;
q[1] = (M[4*1+2] - M[4*2+1]) * s;
q[2] = (M[4*2+0] - M[4*0+2]) * s;
q[3] = (M[4*0+1] - M[4*1+0]) * s;
} else {
int i=0;
if (M[5] > M[0])
i = 1;
if (M[10] > M[5*i])
i = 2;
int j = (i+1) % 3;
int k = (j+1) % 3;
float s = sqrtf(M[15] + M[5*i] - M[5*j] - M[5*k]);
q[i+1] = 0.5f * s;
s = 0.5f / s;
q[j+1] = (M[4*i+j] + M[4*j+i]) * s;
q[0]   = (M[4*j+k] - M[4*k+j]) * s;
q[k+1] = (M[4*k+i] + M[4*i+k]) * s;
}

QNorm(q);
Q2RotAndAxis(q homerot homerotaxis);

homepos[0] = -(M[12]*M[0] + M[13]*M[4] + M[14]*M[8]);
homepos[1] = -(M[12]*M[1] + M[13]*M[5] + M[14]*M[9]);
homepos[2] = -(M[12]*M[2] + M[13]*M[6] + M[14]*M[10]);

homefov = DEFAULT_FOV;
return true;
}


// Reset the camera to the “home“ position
void 

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

     目录          0  2005-06-13 15:11  RBFInpainting

     文件       9762  2004-02-27 22:08  RBFInpainting\amera.cpp

     文件       1712  2004-02-27 22:04  RBFInpainting\amera.h

     文件       4676  2004-03-11 11:20  RBFInpainting\AxisKdTree.cpp

     文件       2692  2004-03-11 11:19  RBFInpainting\AxisKdTree.h

     文件     345474  2004-02-28 21:55  RBFInpainting\background.bmp

     文件       9829  2004-03-12 18:51  RBFInpainting\BallController.cpp

     文件       4822  2004-03-12 18:50  RBFInpainting\BallController.h

     文件      22386  2004-03-10 14:47  RBFInpainting\Bloomenthal.cpp

     文件       7949  2003-11-29 15:24  RBFInpainting\Bloomenthal.h

     文件      34398  2004-03-17 20:28  RBFInpainting\BMPImage.cpp

     文件       2144  2004-03-17 19:19  RBFInpainting\BMPImage.h

     文件       1477  2003-11-24 14:23  RBFInpainting\ChildFrm.cpp

     文件       1329  2003-11-24 14:22  RBFInpainting\ChildFrm.h

     文件      71273  2004-04-02 13:58  RBFInpainting\Dib.cpp

     文件       6800  2004-04-02 13:58  RBFInpainting\Dib.h

     文件      28646  2004-03-30 15:46  RBFInpainting\ell.cpp

     文件       2337  2004-03-30 15:46  RBFInpainting\ell.h

     文件      51660  2005-06-03 00:45  RBFInpainting\FastRBF.aps

     文件       5334  2005-06-03 00:52  RBFInpainting\FastRBF.clw

     文件       4651  2004-05-25 21:11  RBFInpainting\FastRBF.cpp

     文件       7096  2005-03-28 16:31  RBFInpainting\FastRBF.dsp

     文件        838  2005-03-28 16:22  RBFInpainting\FastRBF.dsw

     文件       1397  2004-03-13 11:29  RBFInpainting\FastRBF.h

     文件     984064  2005-06-03 00:52  RBFInpainting\FastRBF.ncb

     文件     269824  2005-06-03 00:52  RBFInpainting\FastRBF.opt

     文件       1419  2005-06-03 00:45  RBFInpainting\FastRBF.plg

     文件      16883  2005-06-03 00:45  RBFInpainting\FastRBF.rc

     文件      32753  2004-04-10 10:06  RBFInpainting\FastRBFDoc.cpp

     文件       3485  2004-04-09 17:12  RBFInpainting\FastRBFDoc.h

............此处省略67个文件信息

评论

共有 条评论

相关资源