基于形态学操作提取水平和垂直线条
Posted 凌风探梅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于形态学操作提取水平和垂直线条相关的知识,希望对你有一定的参考价值。
目的:
结合自定义核,应用两个非常常见的形态学算子(例如,扩张和侵蚀),提取水平和垂直方向的线条。将会用到以下OpenCV函数:
- cv::erode
- cv::dilate
- cv::getStructuringElement
接下里的例子是从乐谱中提取音符(五线谱中音符和乐谱线的分离)
理论
Morphology Operations
形态学是一组图像处理操作, 基于预定义的structuring elements(也被称为核)。输出图像中的每个像素的值是基于中心像素与输入图像中相邻像素的值的比较确定。通过选择核的大小和形状,可以构造一个对输入图像的特定形状敏感的形态学运算。
两个最基本的形态操作是膨胀和腐蚀。膨胀会将像素添加到图像中的对象的边界,而腐蚀正好相反。添加或删除的像素的量,分别取决于用于处理图像的结构元素的大小和形状。一般来说,这两个操作的规则如下:
-
膨胀(Dilation):输出像素的值是在结构元素的大小和形状上的所有像素的最大值。例如,在一个二值图像中,如果在核的范围内的输入图像的任何一个像素都被设置为值1,则输出图像的相应的像素将被设置为1。后者适用于任何类型的图像(如灰度,BGR,等)。
-