⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 image.c

📁 图象的均值滤波
💻 C
字号:
#include <stdio.h>
#define WIDTH 80
#define HEIGHT 80


/* Global declarations */
unsigned in_buffer[WIDTH*HEIGHT];       /* processing data buffers */
unsigned out_buffer[WIDTH*HEIGHT];

/* Functions */
static void dataIO(void);
static int processing();
/*
 * ======== main ========
 */
void main()
{
   
   puts("processing\n");
   dataIO();
   processing();
   dataIO(); 
   
}


/*
 *  ======== dataIO ========
 *
 * FUNCTION: read input signal and write processed output signal.
 *
 * PARAMETERS: none.
 *
 * RETURN VALUE: none.
 */
static void dataIO()
{
    /* do data I/O */

    return;
}

static int processing()
{
	unsigned sum;
	int i=0,j=0;
	int denominator;
	int p,q;
	unsigned mean;
	
	for(;i<HEIGHT-1;i++)
		for(j=i*WIDTH;j<i*WIDTH+WIDTH;j++)
		{
			 sum=0;
			 denominator=9;
			 for(p=-1;p<2;p++)
			 	for(q=-1;q<2;q++)
			 	{
			 		if(i+p<0||(j-(i*WIDTH))+q<0||i+p>HEIGHT-1||(j-(i*WIDTH))>WIDTH-1)
			 		{
			 			denominator--;
			 		}
			 		else
			 		{
			 			sum+=in_buffer[p*WIDTH+(j+q)];
			 		}
			 		
			 	}
			 	if(denominator>0)
			 	{
			 		mean=sum/denominator;
			 	}
			 	else
			 	{
			 		puts("error");
			 		mean=in_buffer[j];
			 	}
			 	out_buffer[j]=mean;
		}
		return 0;
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -