主要针对二值图像和灰度图
#include<opencv2\opencv.hpp>
#include<opencv2\highgui\highgui.hpp>
#include<iostream>
#include<math.h>
using namespace std;
using namespace cv;
int main()
{Mat src = imread("E:\\vs2015\\opencvstudy\\1.jpg", 1);if (src.empty()){cout << "could not load the src image!" << endl;return -1;}char *input_title = "input Image";imshow(input_title, src);Mat dst_open,dst_close,dst_gradient,dst_tophat,dst_blackhat;char output_title[] = "output Image";Mat kernal = getStructuringElement(MORPH_RECT, Size(3, 3), Point(-1, -1));morphologyEx(src, dst_open, CV_MOP_OPEN, kernal);imshow("dst_open", dst_open);morphologyEx(src, dst_close, CV_MOP_CLOSE, kernal);imshow("dst_close", dst_close);morphologyEx(src, dst_gradient, CV_MOP_GRADIENT, kernal);imshow("dst_gradient", dst_gradient);morphologyEx(src, dst_tophat, CV_MOP_TOPHAT, kernal);imshow("dst_tophat", dst_tophat);morphologyEx(src, dst_blackhat, CV_MOP_BLACKHAT, kernal);imshow("dst_blackhat", dst_blackhat);waitKey(0);return 0;
}