图像的腐蚀与膨胀--代码
2012-08-19 21:19
253 查看
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;
}
///先膨胀再腐蚀为闭运算,反之为开运算,这个程序效果不错,是做飞思卡尔摄像头的,才做的图像处理,虽然实际小车跑时效果不怎么样当是作为分析还是很有效的
{
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;
}
///先膨胀再腐蚀为闭运算,反之为开运算,这个程序效果不错,是做飞思卡尔摄像头的,才做的图像处理,虽然实际小车跑时效果不怎么样当是作为分析还是很有效的
相关文章推荐
- opencv图像处理——形态学腐蚀膨胀练习示例代码
- OpenCV学习(12) 图像的腐蚀与膨胀(3)
- 图像形态学操作—腐蚀膨胀深入
- Matlab 图像处理 形态学 腐蚀 膨胀 开闭运算 连通分量
- Javascript图像处理―图像形态学(膨胀与腐蚀)
- 【数字图像处理】图像二值化,腐蚀膨胀,开闭运算,击中击不中变换
- 图像的膨胀与腐蚀、细化
- chapter17图像腐蚀膨胀(一)
- opencv2函数学习之erode、dilate:图像腐蚀和膨胀
- 图像处理中的形态学滤波:腐蚀与膨胀
- opencv学习笔记(十一)——图像腐蚀和膨胀混合运用练习
- 【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀
- 【OpenCV学习笔记】2.3图像的腐蚀、膨胀、模糊、边缘检测
- 【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀
- 图像的膨胀与腐蚀、细化
- 形态学图像处理之腐蚀与膨胀
- 图像的腐蚀和膨胀------学习记录(9)
- OpenCV膨胀和腐蚀示例代码
- 图像处理之膨胀腐蚀操作
- 图像形态学,腐蚀,膨胀操作原理