#include #include #include #include "vision.h" #define WIDTH 320 #define HEIGHT 200 main(int argc, char *argv[]) { double input[WIDTH][HEIGHT]; double convert[WIDTH][HEIGHT]; double output[WIDTH][HEIGHT]; char filein[] = "photo0.pgm"; char fileout[] = "imagefilter-t.pgm"; FILE *fpin, *fpout; int width, height; /* ファイル filein を開く */ if ((fpin = fopen(filein,"r")) == NULL) { fprintf(stderr, "%s: cannot open %s\n", argv[0], filein); exit(1); } /* 画像 input をファイルポインタ fpin から読み込む */ imageRead(fpin, &width, &height, 0, 0, 1, 1, WIDTH, HEIGHT, &input[0][0]); /* ファイルを閉じる */ fclose(fpin); /* 3×3 平均化フィルタ */ /*imageAverageFilter3(width, height, WIDTH, HEIGHT, &input[0][0], &convert[0][0]);*/ /* ソーベルフィルタ */ imageSobelFilter3(width, height, WIDTH, HEIGHT, &input[0][0], &convert[0][0]); /* ラプラシアンフィルタ */ /*imageLaplacianFilter3(width, height, WIDTH, HEIGHT, &input[0][0], &convert[0][0]);*/ /* リニアスケーリング */ imageLinearScaling(width, height, WIDTH, HEIGHT, &convert[0][0], &output[0][0]); /* ファイル fileout を開く */ if ((fpout = fopen(fileout,"w")) == NULL) { fprintf(stderr, "%s: cannot open %s\n", argv[0], fileout); exit(1); } /* 画像 output をファイルポインタ fpout に書き込む */ imageWrite(fpout, width, height, 0, 0, 1, 1, WIDTH, HEIGHT, &output[0][0]); /* ファイルを閉じる */ fclose(fpout); }