#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat image, binary, eroded, dilated;
image = imread("D:/image/group.jpg", 0);
//二值化,取反
threshold(image, binary, 128, 255, CV_THRESH_BINARY_INV);
namedWindow("binary");
imshow("binary", binary);
//腐蚀
erode(binary, eroded, Mat());
//膨胀
dilate(binary, dilated, Mat());
namedWindow("eroded");
imshow("eroded", eroded);
namedWindow("dilated");
imshow("dilated", dilated);
Mat element(5, 5, CV_8U, Scalar(1));
Mat opened, closed;
//形态学开运算,先腐蚀后膨胀,去掉小白点
morphologyEx(binary, opened, MORPH_OPEN, element);
namedWindow("opened");
imshow("opened", opened);
//形态学闭运算,先膨胀后腐蚀 去掉小黑点
morphologyEx(binary, closed, MORPH_CLOSE, element);
namedWindow("closed");
imshow("closed", closed);
waitKey(0);
return 0;
}
膨胀腐蚀开运算闭运算
最新推荐文章于 2023-06-18 15:45:20 发布