#include<stdio.h>
#include<stdlib.h>
#define H 200
#define V 301
main (){
int i, j, p, q, a, c, jj, ii, b[32][64], vec1[16], **vec_data,total, **mem;
char s[256];
FILE *fp;
//memの確保
mem=(int **)malloc(sizeof(int *)*H*V);
if(mem==NULL){
printf("please put any key to stop program \n");
exit(1);
}
for(i=0;i<V;i++){
mem[i]=(int *)malloc(sizeof(int)*V);
if(mem[i]==NULL){
printf("Plz put any key to stop program \n");
exit(1);
}
}
total= 168*237;
//vec_dataの確保
vec_data=(int **)malloc(sizeof(int *)*total);
if(vec_data==NULL){
printf("please put any key to stop program \n");
exit(1);
}
for(i=0;i<total;i++){
vec_data[i]=(int *)malloc(sizeof(int)*16);
if(vec_data[i]==NULL){
printf("Plz put any key to stop program \n");
exit(1);
}
}
// sumの初期化
for(j=0;j<16;j++){
for(i=0;i<total;i++){
vec_data[i][j]=0;
}
}
//fileの読み込み
fp=fopen("morikawa.pbm","r");
if(fp==NULL){
printf("Can not open file \n");
exit(1);
}
for(i=0; i<3; i++){
fgets(s, 256, fp);
}
for(j=0;j<V;j++){
for(i=0;i<H;i++){
fscanf(fp,"%d", &mem[i][j]);
}
}
fclose(fp);
a=0;
for(j=0;j<237;j++){
for(i=0;i<168;i++){
for(q=0;q<64;q++){
for(p=0;p<32;p++){
b[p][q]=mem[i+p][j+q];
}
}
for(jj=0;jj<4;jj++){
for(ii=0;ii<4;ii++){
vec1[ii+jj*4]=0;
for(p=0;p<16;p++){
for(q=0;q<8;q++){
vec1[ii+jj*4]=vec1[ii+jj*4]+b[8*ii+q][16*jj+p];
}
}
}
}
for(ii=0;ii<16;ii++){
vec_data[a][ii]=vec1[ii];
}
a++;
}
}
fp=fopen("sum52.txt","w");
if(fp==NULL){
printf("Can not open file \n");
exit(1);
}
for(j=0;j<total;j++){
for(i=0;i<16;i++){
fprintf(fp,"%d ",vec_data[j][i]);
}
fprintf(fp,"\n");
}
fclose(fp);
}