形态学操作

形态学操作

开操作:open

                      先腐蚀后膨胀,可以去掉小的对象,假设对象是前景色,背景是黑色

形态学操作


闭操作:close

                       先膨胀 后腐蚀 

形态学操作


形态学梯度:
形态学操作




顶帽:是原图像与开操作之间的差值图像

形态学操作
黑帽是闭操作与源图像的差值
形态学操作

#include<opencv2\opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
Mat src, dst;
src = imread("1.png");
if (src.empty())
{
printf("could not load image");
}
namedWindow("input image", WINDOW_AUTOSIZE);
imshow("input image", src);
char output_title[] = "morphology demo";
namedWindow(output_title, WINDOW_AUTOSIZE);
//制作矩形内核
Mat kernel = getStructuringElement(MORPH_RECT, Size(11, 11), Point(-1, -1));

//morphologyEx(src, dst, CV_MOP_OPEN, kernel);//进行了开操作
//morphologyEx(src, dst, CV_MOP_CLOSE, kernel);//进行了闭操作
//morphologyEx(src, dst, CV_MOP_GRADIENT, kernel);//进行梯度操作

    //morphologyEx(src, dst, CV_MOP_TOPHAT, kernel);//进行顶帽操作
morphologyEx(src, dst, CV_MOP_BLACKHAT, kernel);//进行黑帽操作
imshow(output_title, dst);
waitKey(0);
return 0;
}