//------------------------------------------------图像畸变的调整-----------------------------------------
public static void Distortion(out double[] u, out double[] v, int h, int w)
{
//double[] A = { 538.6153, 0, 326.2118, 0, 535.5460, 238.8184, 0, 0, 1 };//相机内
参
//double[] D = { -0.5228, 0.2364, 0, 0, 0 };//畸变矩阵
//double[] K1 = { 0.0019, 0, -0.6056, 0, 0.0019, -0.4459, 0, 0, 1 };
double[] A = { 1253.7051, 0, 812.6029, 0, 1260.43, 611.1636, 0, 0, 1 };//相机内参
double[] D = { -0.5228, 0.2364, 0, 0, 0 };//畸变矩阵
double[] K1 = { 0.0008, 0, -0.6482, 0, 0.0008, -0.4849, 0, 0, 1 };
double[] r = new double[h * w];
double[] x= new double[h * w];
double[] y = new double[h * w];
int i = 0;
for (i = 0; i < h * w; i++)
{
x[i] = (i / h + 1) * K1[0] + K1[2];
y[i] = (i % h + 1) * K1[4] + K1[5];
r[i] = x[i] * x[i] + y[i] * y[i];
}
for (i = 0; i < h * w; i++)
{
x[i] = x[i] * (1 + D[0] * r[i] + D[1] * r[i] * r[i]);
y[i] = y[i] * (1 + D[0] * r[i] + D[1] * r[i] * r[i]);
}
for (i = 0; i < h * w; i++)
{
x[i] = A[0] * x[i] + A[2];
y[i] = A[4] * y[i] + A[5];
x[i] = (int)x[i];
y[i] = (int)y[i];
}
u = x;
v = y;
}
public static void Ne(ref byte[] data, int h, int w, double[] x, double[] y)
{
int i = 0, j = 0;
byte[] R = new byte[h * w];
byte[] G = new byte[h * w];
byte[] B = new byte[h * w];