图像形态学
形态学源于动物学与生物学。图像形态学主要研究图像的形态特征,实际表现为图像像素之间的关系。
图像像素与邻域像素进行特定的逻辑操作,操作的结果即为形态特征。
形态学图像处理的基本运算有4个:膨胀、腐蚀、开操作和闭操作
形态学的主要应用:边界提取、区域填充、连通分量的提取、凸壳、细化、粗化等
链接:图像形态学
本文头文件以及使用的命名空间
#pragma once
#include <opencv2\opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
获取结构元素(getStructuringElement())
在进行图像形态学操作前,需要获取图像结构元素。它类似于卷积与滤波中对图像操作的卷积核,opencv中使用getStructuringElement()获取特定形状与大小的结构元素,在被用于后续的形态学操作中。
shape :结构元素的形状,MORPH_RECT矩形 MORPH_CROSS十字形 MORPH_ELLIPSE椭圆
ksize : 结构元素的大小
anchor :结构元素的锚点,默认为中心点
膨胀(dilate())
src : 输入图像
dst : 输出图像
kernel : 结构元素,由getstructelement获得
anchor : 结构元素的锚点,默认中心
iteration : 膨胀的次数
测试代码:这里使用morphologyEx函数,内部也是调用dilate函数
//膨胀
Mat m1 = imread(path8, 1);
Mat m2;
Mat kernel = getStructuringElement(MORPH_RECT, Size(7, 7), Point(-1, -1));
morphologyEx(m1, m2, MORPH_DILATE, kernel);
namedWindow("truth image", WINDOW_AUTOSIZE)