#include<bits/stdc++.h>
using namespace std;
int M2[8][8] = { 0 };
void cal(int m1[][8], int m2[][8]) {
int i = 0, j = 0;
int u = 0, v = 0;
for (i = 0; i <= 7; i++) {
for (j = 0; j <= 7; j++) {
double k = 0;
for (u = 0; u <= 7; u++) {
for (v = 0; v <= 7; v++)
{
if (u != 0 && v != 0) {
k += 1.0 * m1[u][v] * cos((acos(-1) / 8) * (i + 0.5) * u) * cos((acos(-1) / 8) * (j + 0.5) * v);
}
if (u == 0 && v != 0) {
k += 1.0 * m1[u][v] * sqrt(0.5)*cos((acos(-1) / 8) * (i + 0.5) * u) * cos((acos(-1) / 8) * (j + 0.5) * v);
}
if (u != 0 && v == 0) {
k += 1.0 * m1[u][v] * sqrt(0.5) * cos((acos(-1) / 8) * (i + 0.5) * u) * cos((acos(-1) / 8) * (j + 0.5) * v);
}
if (u == 0 && v == 0) {
k += 1.0*m1[u][v] * 0.5 * cos((acos(-1) / 8) * (i + 0.5) * u) * cos((acos(-1) / 8) * (j + 0.5) * v);
}
}
}
m2[i][j] = round(0.25 * k + 128);
if (m2[i][j] > 255)m2[i][j] = 255;
if (m2[i][j] < 0)m2[i][j] = 0;
}
}
}
int main() {
int Q[8][8] = { 0 };
int M[8][8] = { 0 };
int M1[8][8] = { 0 };
int i, j,n,t;
for(i=0;i<=7;i++)
for (j = 0; j <= 7; j++) {
cin >> Q[i][j];
}
cin >> n;
cin >> t;
int a[64] = { 0 };
for (i = 0; i < n; i++)cin >> a[i];
int m = 0;
i = 0; j = 0;
M[i][j]=a[m];
while (1) {
if (i == 0) {
M[i][++j] = a[++m];
if (i == 0 && j == 7)break;
while (j != 0) {
M[++i][--j] = a[++m];
}
}
if (j == 0) {
M[++i][j] = a[++m];
while (i != 0) {
M[--i][++j] = a[++m];
}
}
}
while (j != 0) {
M[++i][--j] = a[++m];
}
while (1) {
if (i == 7) {
M[i][++j] = a[++m];
if (i == 7 && j == 7)break;
while (j != 7) {
M[--i][++j] = a[++m];
}
}
if (j == 7) {
M[++i][j] = a[++m];
while (i != 7) {
M[++i][--j] = a[++m];
}
}
}
//t=1;
for (i = 0; i <= 7; i++)
for (j = 0; j <= 7; j++) {
M1[i][j] = M[i][j] * Q[i][j];
}
//t=2;
cal(M1, M2);
if (t == 0) {
for (i = 0; i <= 7; i++) {
for (j = 0; j <= 7; j++) {
cout << M[i][j]<<" ";
}
cout << endl;
}
}
if (t == 1) {
for (i = 0; i <= 7; i++) {
for (j = 0; j <= 7; j++) {
cout << M1[i][j] << " ";
}
cout << endl;
}
}
if (t == 2) {
for (i = 0; i <= 7; i++) {
for (j = 0; j <= 7; j++) {
cout << M2[i][j] << " ";
}
cout << endl;
}
}
return 0;
}
JPEG 解码
于 2023-03-14 14:08:04 首次发布