root/snippet/gaussian_blur/test.c

Revision 84, 1.2 KB (checked in by aqua, 3 years ago)

normalizing gaussian mask to avoid losing energy

Line 
1#include <stdio.h>
2#include <stdlib.h>
3#include <string.h>
4
5#include "image.h"
6#include "gaussian.h"
7
8#define WIDTH 512
9#define HEIGHT 512
10
11#define INFILE "lena512.raw"
12#define OUTFILE "lena512_blured_%d.raw"
13#define DIFFFILE "lena512_blured_diff_%d.raw"
14
15#define LEVEL 20
16
17int main( int argc, char** argv ){
18
19        FILE* in;
20        FILE* out;
21
22        char  filename[255];
23       
24        int i;
25       
26        uchar* src;
27        uchar* dst[LEVEL];
28        uchar* diff[LEVEL-1];
29
30        src = (uchar*)malloc(sizeof(uchar)*WIDTH*HEIGHT);
31
32        for( i = 0 ; i < LEVEL ; i++ )
33                dst[i]  = (uchar*)malloc(sizeof(uchar)*WIDTH*HEIGHT);
34       
35        for( i = 0 ; i < LEVEL-1 ; i++ )
36                diff[i] = (uchar*)malloc(sizeof(uchar)*WIDTH*HEIGHT);
37       
38       
39        in = fopen( INFILE, "rb" );
40        fread( src, sizeof(uchar), WIDTH*HEIGHT, in );
41        fclose( in );
42
43        for( i = 0 ; i < LEVEL ; i++ ){
44                gaussian_blur( dst[i], src, i, WIDTH, HEIGHT );
45
46                sprintf( filename, OUTFILE, i );
47
48                out = fopen( filename, "wb" );
49                fwrite( dst[i], sizeof(uchar), WIDTH*HEIGHT, out );
50                fclose( out );
51        }
52       
53        for( i = 0 ; i < LEVEL-1 ; i++ ){
54                difference( diff[i], dst[i+1], dst[i], WIDTH, HEIGHT );
55               
56                sprintf( filename, DIFFFILE, i );
57
58                out = fopen( filename, "wb" );
59                fwrite( diff[i], sizeof(uchar), WIDTH*HEIGHT, out );
60                fclose( out );
61        }
62       
63        return 0;
64}
Note: See TracBrowser for help on using the browser.