| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 720 人关注过本帖
标题:[求助]又出错了!灰度闭滤波,graph.h要用什么替换?
只看楼主 加入收藏
ds590
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-4-24
收藏
 问题点数:0 回复次数:0 
[求助]又出错了!灰度闭滤波,graph.h要用什么替换?
我做的是灰度闭滤波器,用到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);
}
搜索更多相关主题的帖子: keyword include 关键词 滤波器 color 
2006-04-25 12:41
快速回复:[求助]又出错了!灰度闭滤波,graph.h要用什么替换?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016816 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved