图像腐蚀操作
cv::getStructuringElement
是 OpenCV 中用于创建形态学操作(如腐蚀、膨胀、开运算、闭运算等)所需的结构元素的函数。结构元素通常用于图像处理中的形态学操作,以便处理二值图像或灰度图像。结构元素可以是各种形状,如矩形、椭圆、十字形等。
以下是 cv::getStructuringElement
的一般形式:
cv::Mat getStructuringElement(int shape, cv::Size ksize, cv::Point anchor = cv::Point(-1,-1));
shape
参数指定了结构元素的形状,通常是以下之一:cv::MORPH_RECT
:矩形结构元素。cv::MORPH_ELLIPSE
:椭圆结构元素。cv::MORPH_CROSS
:十字形结构元素。
ksize
参数指定了结构元素的大小(宽度和高度),通常使用cv::Size
类型表示。anchor
参数指定了结构元素的锚点位置,通常是cv::Point
类型表示。默认值为 (-1, -1),表示将锚点设置为结构元素的中心。
例如,你可以使用 cv::getStructuringElement
来创建一个矩形结构元素:
cv::Mat kernel = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(3, 3));
这个示例中,kernel
是一个3x3的矩形结构元素,用于形态学操作。
你可以根据需要选择不同形状和大小的结构元素,并将它们用于腐蚀、膨胀、开运算、闭运算等图像处理任务。结构元素的选择对形态学操作的效果产生重要影响。
#include <opencv2/opencv.hpp>
#include <iostream>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace std;
using namespace cv;
#include <iostream>
#include <fstream>
using namespace cv; //包含cv命名空间
int main()// 控制台应用程序的入口函数, 我们的程序从这里开始
{
//载入原图
Mat srcImage = imread("2.jpg");
//显示原图
imshow("【原图】腐蚀操作", srcImage);
//进行腐蚀操作
Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
Mat dstImage;
erode(srcImage, dstImage, element);
//显示效果图
imshow("【效果图】腐蚀操作", dstImage);
waitKey(0);
return 0;
}