形态学操作
形态学操作
开操作:open
先腐蚀后膨胀,可以去掉小的对象,假设对象是前景色,背景是黑色
闭操作:close
先膨胀 后腐蚀
形态学梯度:
顶帽:是原图像与开操作之间的差值图像
黑帽是闭操作与源图像的差值
#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;
}