void shousuo(void)//收缩达到腐蚀的效果
{
int i,j;
for(i=0;i<=ROW_VALUE;i++)//将二值化数组赋给为二值化的数组以减小内存消耗
for(j=0;j<=Column_value;j++)
Buff[i][j]=Image[i][j];
for(i=1;i<ROW_VALUE-1;i++)/*处理内部元素*/
for(j=1;j<Column_value-1;j++)
if(Buff[i][j-1]==0||Buff[i][j+1]==0||Buff[i-1][j]==0||Buff[i+1][j]==0)
Image[i][j]=0;
for(i=1;i<ROW_VALUE-1;i++)/*处理边界元素*/
{
if(Buff[i-1][0]==0||Buff[i+1][0]==0)
Image[i][0]=0;
if(Buff[i-1][Column_value-1]==0||Buff[i+1][Column_value-1]==0)
Image[i][Column_value-1]=0;
}
for(j=0;j<Column_value-1;j++)/*处理边界元素*/
{
if(Buff[0][j-1]==0||Buff[0][j+1]==0)
Image[0][j]=0;
if(Buff[ROW_VALUE-1][j-1]==0||Buff[ROW_VALUE-1][j+1]==0)
Image[ROW_VALUE-1][j]=0;
}
if(Buff[0][1]==0||Buff[1][0]==0)/*以下几条语句处理四个角的元素*/
Image[0][0]=0;
if(Buff[0][Column_value-2]==0||Buff[1][Column_value-1]==0)
Image[0][Column_value-1]=0;
if(Buff[ROW_VALUE-2][0]==0||Buff[ROW_VALUE-1][1]==0)
Image[ROW_VALUE-1][0]=0;
if(Buff[ROW_VALUE-2][Column_value-1]==0||Buff[ROW_VALUE-1][Column_value-2]==0)
Image[ROW_VALUE-1][Column_value-1]=0;
}
void pengzhang(void)//达到膨胀效果程序
{
int i,j;
for(i=0;i<=ROW_VALUE;i++)//将二值化数组赋给为二值化的数组以减小内存消耗
for(j=0;j<=Column_value;j++)
Buff[i][j]=Image[i][j];
for(i=1;i<ROW_VALUE-1;i++)
for(j=1;j<Column_value-1;j++)
if(Buff[i][j-1]==1||Buff[i][j+1]==1||Buff[i-1][j]==1||Buff[i+1][j]==1)
Image[i][j]=1;
for(i=1;i<ROW_VALUE-1;i++)
{
if(Buff[i-1][0]==1||Buff[i+1][0]==1)
Image[i][0]=1;
if(Buff[i-1][Column_value-1]==1||Buff[i+1][Column_value-1]==1)
Image[i][Column_value-1]=1;
}
for(j=0;j<Column_value-1;j++)
{
if(Buff[0][j-1]==1||Buff[0][j+1]==1)
Image[0][j]=1;
if(Buff[ROW_VALUE-1][j-1]==1||Buff[ROW_VALUE-1][j+1]==1)
Image[ROW_VALUE-1][j]=1;
}
if(Buff[0][1]==1||Buff[1][0]==1)
Image[0][0]=1;
if(Buff[0][Column_value-2]==1||Buff[1][Column_value-1]==1)
Image[0][Column_value-1]=1;
if(Buff[ROW_VALUE-2][0]==1||Buff[ROW_VALUE-1][1]==1)
Image[ROW_VALUE-1][0]=1;
if(Buff[ROW_VALUE-2][Column_value-1]==1||Buff[ROW_VALUE-1][Column_value-2]==1)
Image[ROW_VALUE-1][Column_value-1]=1;
}
///先膨胀再腐蚀为闭运算,反之为开运算,这个程序效果不错,是做飞思卡尔摄像头的,才做的图像处理,虽然实际小车跑时效果不怎么样当是作为分析还是很有效的