/*=============================================*/
/*          2.1   ネガ画像の作成                */
/*=============================================*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void main(void)
{
  /*============================*/
  /*        変数宣言部           */
  /*============================*/
  int i,j;                                    //■ ループ用変数
  unsigned char Pix[128][128];                //■ バイナリ画像データ格納用
  char buff[128];                             //■ ヘッダ抽出用
  int x,y;                                    //■ 画像ファイルのヘッダ操作用変数
  FILE *fp;                                   //■ ファイルポインタ
  
  /*============================*/
  /*        画像入力部           */
  /*============================*/
  fp=fopen("./image_data/Lenna.pgm", "rb" ); //■ read binaryモードで画像ファイルを開く
  fgets(buff,128,fp);                        //■ ファイルの識別符号を読み込み
  fgets(buff,128,fp);                        //■ 画像サイズの読み込み
  fgets(buff,128,fp);                        //■ 最大輝度値の読み込み
  
  //■ 画像データの読み込み
  for(j=0;j<128;j++)
    fread(Pix[j],sizeof(unsigned char),128,fp);
  fclose(fp);
  
  /*============================*/
  /*       画像処理部            */
  /*============================*/
  
  for(j=0;j<128;j++){
    for(i=0;i<128;i++){
      printf("座標(%d,%d)のグレイレベルは%dです\n",i,j,Pix[j][i]);
    }
  }
  
  /*============================*/
  /*        画像出力部          */
  /*============================*/
  fp=fopen("./image_data/nega.pgm", "wb" ); //■ write binaryモードで画像ファイルを開く
  fprintf(fp,"P5\n");                        //■ ファイルの識別符号を書き込む
  fprintf(fp,"128 128\n");                   //■ 画像サイズを書き込む
  fprintf(fp,"255\n");                       //■ 最大輝度値を書き込む
  
  //■ 画像データの書き込み
  for(j=0;j<128;j++)
    fwrite(Pix[j],sizeof(unsigned char),128,fp);
  
  fclose(fp);
  
} // end_of_main

[戻る][Top]