unknown@wiki 32×64の画像を16等分して16次元のベクトルを作る。アスキー対応

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

#include<stdio.h>
#include<stdlib.h>
 
main (){
  
 int i, j, p, q, sum[16], b[32][64];
 char s[256];
 FILE *fp;
 
 
    fp=fopen("pro32.pgm","r");
    if(fp==NULL){
       printf("Can not open file \n");
       exit(1);
    }
   
    for(i=0; i<4; i++){   
 fgets(s, 256, fp);
 }
   
 for(j=0;j<64;j++){
     for(i=0;i<32;i++){
      fscanf(fp,"%d", &b[i][j]);
     }
    }
    for(j=0;j<4;j++){
     for(i=0;i<4;i++){
      sum[i+j]=0;
      for(p=0;p<16;p++){
       for(q=0;q<8;q++){ 
        sum[i+j]=sum[i+j]+b[8*i+q][16*j+p];
       }
      }
       }
    }
   
 fclose(fp);   

    fp=fopen("pro32.txt","w");
    if(fp==NULL){
       printf("Can not open file \n");
       exit(1);
    }
    for(j=0;j<4;j++){
     for(i=0;i<4;i++){
            fprintf(fp,"%d ",sum[i+j]);
 }
     
    }
 

}