我做的是灰度闭滤波器,用到graph.h这个头文件,还有huge这个关键词(有错的地方我都用红色标记了)
但是编译时出错:找不到graph.h,并且huge是个废弃的关键词,我晕了,怎么办??
该用什么替换啊? 下面时我的程序,有些长,请看看吧。
其中gray_dilation是灰度膨胀滤波    gray_erosion是灰度腐蚀滤波 , 编译时说“huge' is an obsolete keyword”!!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<graph.h>
#include<window.h>
#define MAXDX 256
#define MAXDY 256
#define MASKDY 7
#define MASKDX 7
#define msksize 7
#define  AMP 2
typedef unsigned char BYTE;
typedef struct
 {
   int cols;
   int rows;
   int kern[MASKDY][MASKDX];
   int dx,dy;
 }Mask;
void gray_close(unsigned char img[][MAXDX],
                   int dx,int dy,Mask msk,
                   unsigned char img1[][MAXDX]);
 /**********************灰度闭滤波器****************************
   buffer_in:输入图象数据指针
   buffer_out:输出图象数据指针
   XSIZE:图象宽度
   YSIZE:图象高度
   amp:输出像素值倍数
***********************************************************/
void gray_dilation(unsigned char img[][MAXDX],
                   int dx,int dy,Mask msk,
                   unsigned char img1[][MAXDX])
 {
          int i,j,s,t,bmax,mx,my,bpix,maskdx,maskdy;
         msk.cols=msksize;msk.rows=msksize;
           mx=MASKDX/2;my=MASKDY/2;maskdx=msk.cols/2;maskdy=msk.rows/2;//.cols/2;//msk.rows/2;
           for(i=0;i<dy;i++)
           for(j=0;j<dx;j++)
      {
                 bmax=0;
            for(s=(-maskdy);s<=maskdy;s++)
               for(t=(-maskdx);t<=maskdx;t++)
            {
                 if(((i+s)>=0) && ((i+s)<dy) && ((j+t)>=0) && ((j+t)<dx))
             {
                   bpix=img[i+s][j+t]+msk.kern[s+my][t+mx];
                 if(bpix>bmax)bmax=bpix;
                     }
               }
            if(bmax>255)bmax=255;
               img1[j]=bmax;
               }
            }  
void gray_erosion(unsigned char img[][MAXDX],
                   int dx,int dy,Mask msk,
                   unsigned char img1[][MAXDX])
 {
          int i,j,s,t,bmin,mx,my,bpix,maskdx,maskdy;
            msk.cols=msksize;msk.rows=msksize;
                mx=MASKDX/2;my=MASKDY/2;maskdx=msk.cols/2;maskdy=msk.rows/2;
           for(i=0;i<dy;i++)
               for(j=0;j<dx;j++)
      {
                 bmin=255;
            for(s=(-maskdy);s<=maskdy;s++)
               for(t=(-maskdx);t<=maskdx;t++)
            {
                 if(((i+s)>=0) && ((i+s)<dy) && ((j+t)>=0) && ((j+t)<dx))
             {
                   bpix=img[i+s][j+t]-msk.kern[s+my][t+mx];
                 if(bpix<bmin) bmin=bpix;
                     }
               }
            if(bmin<0) bmin=0;
               img1[j]=bmin;
               }
            }
 
void main()
{  
   
        Mask msk;
      int XSIZE=MAXDX;
      int YSIZE=MAXDY;
      BYTE inbuf[MAXDX*MAXDY];//XSIZE*YSIZE
      BYTE outbuf[MAXDX*MAXDY];//XSIZE*YSIZE
      typedef unsigned char BYTE;
      FILE *fp_c;
                                FILE *fp;
                 
msk.kern[0][0]=0;msk.kern[0][1]=0;msk.kern[0][2]=0;msk.kern[0][3]=0;msk.kern[0][4]=0;msk.kern[0][5]=0;msk.kern[0][6]=0;
msk.kern[1][0]=0;msk.kern[1][1]=0;msk.kern[1][2]=0;msk.kern[1][3]=0;msk.kern[1][4]=0;msk.kern[1][5]=0;msk.kern[1][6]=0;
msk.kern[2][0]=0;msk.kern[2][1]=0;msk.kern[2][2]=0;msk.kern[2][3]=0;msk.kern[2][4]=0;msk.kern[2][5]=0;msk.kern[2][6]=0;   
msk.kern[3][0]=0;msk.kern[3][1]=0;msk.kern[3][2]=0;msk.kern[3][3]=0;msk.kern[3][4]=0;msk.kern[3][5]=0;msk.kern[3][6]=0;
msk.kern[4][0]=0;msk.kern[4][1]=0;msk.kern[4][2]=0;msk.kern[4][3]=0;msk.kern[4][4]=0;msk.kern[4][5]=0;msk.kern[4][6]=0;
msk.kern[5][0]=0;msk.kern[5][1]=0;msk.kern[5][2]=0;msk.kern[5][3]=0;msk.kern[5][4]=0;msk.kern[5][5]=0;msk.kern[5][6]=0;
msk.kern[6][0]=0;msk.kern[6][1]=0;msk.kern[6][2]=0;msk.kern[6][3]=0;msk.kern[6][4]=0;msk.kern[6][5]=0;msk.kern[6][6]=0;
        //FILE *fsav;
/***********************************************************
                         file open
***********************************************************/
      msk.dx=MAXDX;
      msk.dy=MAXDY;
      if((fp_c=fopen("input.yuv","rb"))==NULL)
      {
         printf("cannot open file\n");
         exit(0);
      }
      
      
        if((fp=fopen("out21.yuv","wb"))==NULL)
      {
         printf("cannot creat file\n");
         exit(0);
      }
        
        fread(inbuf,sizeof(BYTE),XSIZE*YSIZE,fp_c);
          gray_close(inbuf,msk.dx,msk.dy,msk,outbuf);
        //[][MAXDX]
          fwrite(outbuf,sizeof(BYTE),XSIZE*YSIZE,fp);
          fclose(fp);
         fclose(fp_c);
         
}
      void gray_close(unsigned char img[][MAXDX],
                   int dx,int dy,Mask msk,
                   unsigned char img1[][MAXDX])
      {
         int i,j;
         unsigned char huge *imgbuf;
         long imgsize;
         imgsize=(long)dx*dy;
         imgbuf=(unsigned char huge*)halloc(imgsize,1);
      if(imgbuf==NULL)
         {
         printf("Memory Allocation Faild!\n");
         exit(1);
         }
      for(i=0;i<dy;i++)
         for(j=0;j<dx;j++)*(imgbuf+i*(long)dx+j)=img[j];
   gray_dilation(img,dx,dy,msk,img1);
         for(i=0;i<dy;i++)
            for(j=0;j<dx;j++)img[j]=img1[j];
   gray_erosion(img,dx,dy,msk,img1);
         for(i=0;i<dy;i++)
            for(j=0;j<dx;j++)img[j]= * (imgbuf+i*(long)dx+j);
            hfree(imgbuf);
      }
													[求助]又出错了!灰度闭滤波,graph.h要用什么替换?
		
											----------------解决方案--------------------------------------------------------