目录
1. 函数原型
cv::getStructuringElement()
是 OpenCV 中一个用于生成结构元素的函数,结构元素在形态学操作(如膨胀、腐蚀等)中扮演了重要角色。
cv::Mat cv::getStructuringElement(int shape, cv::Size ksize, cv::Point anchor = cv::Point(-1, -1));
参数:
-
shape
:- 指定结构元素的形状。常用的形状有:
MORPH_RECT
:矩形MORPH_ELLIPSE
:椭圆MORPH_CROSS
:十字形
- 指定结构元素的形状。常用的形状有:
-
ksize
:- 指定结构元素的大小,通常是一个
cv::Size
对象,包含宽度和高度(以像素为单位)。结构元素的尺寸通常是奇数值,以确保其中心像素的对称性。
- 指定结构元素的大小,通常是一个
-
anchor
:- 结构元素的锚点(中心点)。默认值是
cv::Point(-1, -1)
,表示锚点在结构元素的中心。这个参数主要用于调整结构元素在形态学操作中的位置。
- 结构元素的锚点(中心点)。默认值是
返回值:
- 返回一个
cv::Mat
对象,表示生成的结构元素。这个矩阵的类型是CV_8UC1
,即单通道的 8 位无符号整型。
2. 示例
#include <opencv2/opencv.hpp>
int main() {
// 创建一个 5x5 的矩形结构元素
cv::Mat element = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(5, 5));
// 打印结构元素的内容
std::cout << "Structuring Element (Rectangle):" << std::endl;
std::cout << element << std::endl;
return 0;
}
3. 使用场景
结构元素用于形态学变换操作中,比如:
- 腐蚀(
cv::erode()
):去除图像中的小物体。 - 膨胀(
cv::dilate()
):增加图像中物体的大小。 - 开运算(
cv::morphologyEx()
withMORPH_OPEN
):去除噪声。 - 闭运算(
cv::morphologyEx()
withMORPH_CLOSE
):填充物体内部的小孔洞。
结构元素的形状和大小会直接影响形态学操作的效果。
标签:MORPH,元素,形态学,OpenCV,getStructuringElement,cv,结构 From: https://www.cnblogs.com/keye/p/18410205