public Martrix dctTrans(int[,] gray) { Martrix dctMartrix = new Martrix(), grayMartrix = new Martrix(gray); dctMartrix.GetDctMartrix(32); var ans = dctMartrix.multy(grayMartrix); dctMartrix.Reverse(); ans = ans.multy(dctMartrix); return(ans); }
public double[,] getDcCoff(Martrix dctCoff) { double[,] ans = new double[8, 8]; for (int i = 0; i < 8; ++i) { for (int j = 0; j < 8; ++j) { ans[i, j] = dctCoff.martrix[i, j]; } } return(ans); }
public Martrix multy(Martrix b) { Martrix ans = new Martrix(height, b.width); for (int i = 0; i < height; ++i) { for (int j = 0; j < b.width; ++j) { for (int k = 0; k < width; ++k) { ans.martrix[i, j] += martrix[i, k] * b.martrix[k, j]; } } } return(ans); }