腐蚀 图像处理

liuyan20062010 2011-08-04 09:05:40
请帮我解释一下 腐蚀 膨胀 是什么意思 我看了好久了 老是领会不了

举个简单的例子就更好了

谢谢各位
...全文
697 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
windinclouds 2012-04-11
  • 打赏
  • 举报
回复
正在学习opencv
wyp3pyw 2011-10-05
  • 打赏
  • 举报
回复
学习,5也不会
zhoujk 2011-08-29
  • 打赏
  • 举报
回复 1
[Quote=引用 1 楼 ndy_w 的回复:]
都是操作二值图。腐蚀就是把邻接黑点不够多的黑点变白;膨胀就是把邻接黑点够多的白点变黑。
腐蚀可以把独立的干扰黑点去掉,膨胀可以把邻近的黑点连起来。
腐蚀会导致轮廓变小;膨胀会导致变大。因此一般是先腐蚀再膨胀,可以去掉独立的干扰黑点;或先膨胀再腐蚀,可以将断开一点点的黑线连起来之类。
如果干扰的尺度较大,也可以多次腐蚀多次膨胀。
[/Quote]
也可以对灰度图进行类似的操作,消除无用的点和细线。如果消除是暗点和线,就先膨胀再收缩,如果是亮点和线,就先收缩再膨胀
jjj839222 2011-08-23
  • 打赏
  • 举报
回复
学习一下
小卡36 2011-08-23
  • 打赏
  • 举报
回复
2楼真有才 哈哈
timebomb 2011-08-06
  • 打赏
  • 举报
回复
二楼太有才了,哈哈。

不过我这几天也看了一些关于图像处理的一些课件,LZ可以看看xinli的那些课件,介绍的还可以。腐蚀膨胀是基本的二值图的操作,还有两者结合的开操作闭操作。
liuyan20062010 2011-08-05
  • 打赏
  • 举报
回复
谢谢大家
yunbird 2011-08-04
  • 打赏
  • 举报
回复
其中参数osm是腐蚀膨胀模版的阶数,比如3×3的模版,osm = 3
yunbird 2011-08-04
  • 打赏
  • 举报
回复
膨胀:
void Expand(BYTE *p, BYTE *pExpand, int width, int height, int osm, BYTE bitcount)
{
LONG GrayLineSize = (width + 3)/4*4;
int i, j;
int m, n;
int count;
int x = osm*osm;
BYTE *pTemp_1 = p;
BYTE *pTemp_2 = pExpand;
for (i=(osm)/2; i<height-(osm)/2; i++)
{
for (j=(osm)/2; j<width-(osm)/2; j++)
{
pTemp_1 = p + i*GrayLineSize + j;
pTemp_2 = pExpand + i*GrayLineSize + j;
count = 0;
for (m=-(osm)/2; m<=(osm)/2; m++)
{
for (n=-(osm)/2; n<=(osm)/2; n++)
{
if (0 == *(pTemp_1 + m*GrayLineSize + n))
{
if (x == (++count))
{
*pTemp_2 = 0;
}
else
continue;
}
else
{
*pTemp_2 = 255;
break;
}

}
}
}
}
}
yunbird 2011-08-04
  • 打赏
  • 举报
回复
腐蚀:
void Erosion(BYTE *p, BYTE *pErosion, int width, int height, int osm, BYTE bitcount)
{
LONG GrayLineSize = (width + 3)/4*4;
int i, j;
int m, n;
int count;
int x = osm*osm;
BYTE *pTemp_1 = p;
BYTE *pTemp_2 = pErosion;
for (i=(osm)/2; i<height-(osm)/2; i++)
{
for (j=(osm)/2; j<width-(osm)/2; j++)
{
pTemp_1 = p + i*GrayLineSize + j;
pTemp_2 = pErosion + i*GrayLineSize + j;
count = 0;
for (m=-(osm)/2; m<=(osm)/2; m++)
{
int temp = m*GrayLineSize;
for (n=-(osm)/2; n<=(osm)/2; n++)
{
if (255 == *(pTemp_1 + temp + n))
{
if (x == (++count))
{
*pTemp_2 = 255;
}
else
continue;
}
else
{
*pTemp_2 = 0;
break;
}
}
}
}
}
}
laviewpbt 2011-08-04
  • 打赏
  • 举报
回复
腐蚀和膨胀 只是 PS 中 最大值 和最小值滤镜 在二值图像中的特例。
贾囧雷 2011-08-04
  • 打赏
  • 举报
回复
把馒头泡水里,过一段时间之后在看,这就叫膨胀
把馒头放到有一群鱼的水里,你盯着馒头看,就知道啥叫腐蚀了
ndy_w 2011-08-04
  • 打赏
  • 举报
回复
都是操作二值图。腐蚀就是把邻接黑点不够多的黑点变白;膨胀就是把邻接黑点够多的白点变黑。
腐蚀可以把独立的干扰黑点去掉,膨胀可以把邻近的黑点连起来。
腐蚀会导致轮廓变小;膨胀会导致变大。因此一般是先腐蚀再膨胀,可以去掉独立的干扰黑点;或先膨胀再腐蚀,可以将断开一点点的黑线连起来之类。
如果干扰的尺度较大,也可以多次腐蚀多次膨胀。
fengbingchun 2011-08-04
  • 打赏
  • 举报
回复
膨胀是指将一些图像与核进行卷积
膨胀扩展区域,腐蚀缩小区域

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧