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

📄 median.c

📁 适用于ti公司dm642芯片的中值滤波例程很好的资料
💻 C
字号:
/*****************************************************************
** 函数名:	MedianFilerOnePoint	
** 输 入: 	InImagebuf, Row, Col, Length
** InImagebuf---输入待中值率波的显示区指针。
** Row---	行偏移。
** Col---	列偏移。
** Length---	显示区的行长度。
** 输 出: 	OutImagebuf
** OutImagebuf---输出中值率波后的显示区指针。
** 函数返回值:	无。
** 功能描述:	单点的中值率波程序。取周围8点灰度和的平均决定中点灰度
** 全局变量:	无。
** 调用模块:	无。
** 作 者:	wdm
** 日 期:	2003-11-7
** 修 改:
** 日 期:
** 版 本		v1.0
****************************************************************/
void MedianFilerOnePoint( InImagebuf, OutImagebuf, Row, Col, Length)
unsigned char * InImagebuf;
unsigned char * OutImagebuf;
unsigned int  Row;
unsigned int  Col;
unsigned int  Length;
{
	unsigned int i = Col - 1;
	unsigned int j = (Row - 1) * Length;
	unsigned char k;
	unsigned char temp[9];

	temp[0] = (unsigned int)InImagebuf[i + j];
	temp[1] = (unsigned int)InImagebuf[i + j + 1];  
	temp[2] = (unsigned int)InImagebuf[i + j + 2];  
	j += Length;
	temp[3] = (unsigned int)InImagebuf[i + j];
	temp[4] = (unsigned int)InImagebuf[i + j + 1];
	temp[5] = (unsigned int)InImagebuf[i + j + 2]; 
	j += Length;
	temp[6] = (unsigned int)InImagebuf[i + j];
	temp[7] = (unsigned int)InImagebuf[i + j + 1];  
	temp[8] = (unsigned int)InImagebuf[i + j + 2];  

	for(i = 0;i<8;i++)
	{
		for(j=i+1;j<9;j++)
		{
			if(temp[i]>temp[j])
			{
				 k = temp[i] ;
				 temp[i] = temp[j];
				 temp[j] = k;
			}
		}
	}
	OutImagebuf[Length * Row + Col] = temp[4];
	return;
}
/*****************************************************************
** 函数名:	MedianFiler	
** 输 入: 	InImagebuf, Height, Width
** InImagebuf---输入待中值率波的显示区指针。
** Height---	显示区的行长度。
** Width---	显示区的列长度。
** 输 出: 	OutImagebuf
** OutImagebuf---输出中值率波后的显示区指针。
** 函数返回值:	无。
** 功能描述:	整幅图进行中值率波程序。取周围8点灰度和的平均决定中点灰度。

⌨️ 快捷键说明

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