什么意思呢?图像中有一个貌似正方形的区域,然后你通过处理,可以把“貌似”去掉;图像是一个不清晰的指纹,然后你通过处理,也把“不”字去掉;图像中有很多大小不一的圆形区域,然后你通过处理,找出大者祛除小者(去噪)......应用是很多的,但是没有一个完整的范畴,就是很多时候要做某种图像处理实际应用的时候,会想起它吧。
本文来源于 ZwqXin (http://www.zwqxin.cn/), 转载请注明
原文地址:http://www.zwqxin.cn/archives/image-processing/morphologic-process.html
因为处理的都是二值图像(用来分清目标和背景),因此有必要预先把图片转化为8BIT的二值图像,便于处理操作。我是把黑色像素作为目标区域,白色像素作为背景的(当然可以反相)。
结构元素:
其实就是自己定义的一块像素区域,形态学处理的时候用这个元素与原图像作与或运算,生成结果。
膨胀:
设A为原图像。B为结构元素(C为B的映像,没用),那么D的整块“灰+黑”区域就是新图像了(反映在图像里都是黑像素),可以看到图中用黑色标识的是“膨胀”出来的。它就是把结构元素B的中心(+)分别与原图像A“重合”,然后考虑结构元素里的“中心以外”的像素将在原图像中出现的位置,并与原图像该位置的像素进行0-1值的“或运算”(设黑色为0,白色为1,下同)
腐蚀:
腐蚀的解释与膨胀相同,不过执行的是“与运算”。如图,最终图像是C中的纯黑色部分。由此可见膨胀与腐蚀的关系与不同点。
至于“开”与“闭”,无非是结合膨胀腐蚀的二次操作。前者是先腐蚀后膨胀,后者是先膨胀后腐蚀。要注意的是第一次是用结构元素,第二次则是用结构元素的倒置(相当于矩阵的转置咯,这是为了最后图像的“平衡”,如果两次用同一个的话,结果只会是等同双重“膨胀”或“腐蚀”。注意,概念跟“映像”是不同 di,见下图,元素中心也换位置了):
开运算效果:
- 删除小物体;
–将物体拆分为小物体;
–平滑大物体边界而不明显改变它们的面积;
(前者为“开”,后者为“闭”)
- void MorphologicProcess::BmpProcess8(OperateBMP& image, int Hdis, int Wdis)
- {
- GetMinimumStructureElement(MorphElement, LineGrid, StructLineGridX, StructLineGridY);
- if(MorphType == MorphErosion)
- MorphDilaEroProcess(image, Hdis, Wdis, MorphErosion);
- else if(MorphType == MorphDilation)
- MorphDilaEroProcess(image, Hdis, Wdis, MorphDilation);
- else if(MorphType == MorphOpen)
- {
- MorphDilaEroProcess(image, Hdis, Wdis, MorphErosion);
- GetRotInverseStructureElement();
- GenBinaryMorph(image);
- MorphDilaEroProcess(image, Hdis, Wdis, MorphDilation);
- GetRotInverseStructureElement();
- }
- else if(MorphType == MorphClose)
- {
- MorphDilaEroProcess(image, Hdis, Wdis, MorphDilation);
- GetRotInverseStructureElement();
- GenBinaryMorph(image);
- MorphDilaEroProcess(image, Hdis, Wdis, MorphErosion);
- GetRotInverseStructureElement();
- }
- }
在细节上不想多说了。难处不在形态学算法本身,而在“自定义结构元素”(MorphElement)这块,包括它与原图像进行形态学运算时必须要考虑的边界条件处理。有需要的同学可以留言给我[http://www.zwqxin.com]。(当然如果自己连算法怎么样也不懂,只是为了交作业交任务而索要的话,恕不理会- -)
(原始测试图片,处理对话框)
(自定义任意的结构元素,约定中间红点为结构元素中心)
(膨胀,处理结果图片)
(任意定义新的结构元素,作为腐蚀例子)
(腐蚀,处理结果图片)
开和闭运算就不截图了,免得一篇日志里图太多。
本文来源于 ZwqXin (http://www.zwqxin.cn/), 转载请注明
原文地址:http://www.zwqxin.cn/archives/image-processing/morphologic-process.html