先上代码
#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/video.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
//载入原图
Mat image = imread("700levi.jpg");
//创建窗口
namedWindow("原图");
//显示原图
imshow("原图", image);
/****************膨胀****************/
namedWindow("膨胀操作");
//获取自定义核
Mat element1 = getStructuringElement(MORPH_RECT, Size(15, 15));
Mat out1;
//膨胀操作
dilate(image, out1, element1);
//显示效果图
imshow("膨胀操作", out1);
/****************腐蚀****************/
namedWindow("腐蚀操作");
//获取自定义核
Mat element2 = getStructuringElement(MORPH_RECT, Size(15, 15));
Mat out2;
//腐蚀操作
erode(image, out2, element2);
//显示效果图
imshow("腐蚀操作", out2);
waitKey(0);
return 0;
}
效果图


函数解析
膨胀函数-dilate



腐蚀函数-erode


补充:
1.膨胀和腐蚀是最基本的形态学操作
2.膨胀和腐蚀是对白色部分(高亮部分)而言的,不是黑色部分.膨胀是图像中的高亮部分进行膨胀,类似于"领域扩张",效果图拥有比原图更大的高亮区域;腐蚀是原图中的高亮部分被腐蚀,类似于"领域被蚕食",效果图拥有比原图更小的高亮区域.
本文介绍了使用OpenCV库进行图像处理的基本形态学操作,包括膨胀和腐蚀功能。通过实例展示了如何使用自定义核对图像进行区域扩张(膨胀)和收缩(腐蚀),并展示了操作前后效果对比。
9166

被折叠的 条评论
为什么被折叠?



