39 this.GetPreprocessShape(b.SizeX, b.SizeY,
this.mTargetLength, ref neww, ref newh);
41 float[,,] resizeImg = this.Resize(b,neww,newh);
43 float[] means =
new float[resizeImg.GetLength(0)];
44 for (
int i = 0; i < resizeImg.GetLength(0); i++)
46 float[] data =
new float[resizeImg.GetLength(1) * resizeImg.GetLength(2)];
47 for (
int j = 0; j < resizeImg.GetLength(1); j++)
49 for (
int k = 0; k < resizeImg.GetLength(2); k++)
51 data[j * resizeImg.GetLength(2) + k] = resizeImg[i, j, k];
54 means[i] = (float)MathNet.Numerics.Statistics.Statistics.Mean(data);
57 float[] stdDev =
new float[resizeImg.GetLength(0)];
58 for (
int i = 0; i < resizeImg.GetLength(0); i++)
60 float[] data =
new float[resizeImg.GetLength(1) * resizeImg.GetLength(2)];
61 for (
int j = 0; j < resizeImg.GetLength(1); j++)
63 for (
int k = 0; k < resizeImg.GetLength(2); k++)
65 data[j * resizeImg.GetLength(2) + k] = resizeImg[i, j, k];
68 stdDev[i] = (float)MathNet.Numerics.Statistics.Statistics.StandardDeviation(data);
72 float[] transformedImg =
new float[3 * this.mTargetLength * this.mTargetLength];
73 for (
int i = 0; i < neww; i++)
75 for (
int j = 0; j < newh; j++)
77 int index = j * this.mTargetLength + i;
78 transformedImg[index] = (resizeImg[0, i, j] - means[0]) / stdDev[0];
79 transformedImg[this.mTargetLength * this.mTargetLength + index] = (resizeImg[1, i, j] - means[1]) / stdDev[1];
80 transformedImg[2 * this.mTargetLength * this.mTargetLength + index] = (resizeImg[2, i, j] - means[2]) / stdDev[2];
84 return transformedImg;
95 float[,,] Resize(Bitmap originalImage,
int w,
int h)
97 AForge.Imaging.Filters.ResizeBilinear res =
new AForge.Imaging.Filters.ResizeBilinear(w, h);
105 newimg[0, i, j] = resizedImage.GetPixel(i, j).Rf * 255;
106 newimg[1, i, j] = resizedImage.GetPixel(i, j).Gf * 255;
107 newimg[2, i, j] = resizedImage.GetPixel(i, j).Bf * 255;